Ubuntu 21.10 でもそうでしたが、今回發表された Ubuntu 22.04 では、標準ブラウザ Mozilla Firefox は Snap版のみの提供になります。
前回も色々物議を醸しましたが、今回もやはり色々とややこしそうです。
Ubuntu 22.04 Snap版の Mozilla Firefox では一部のアドオンに問題が...
Snap版の Firefox を採用するメリットは、
- バックグラウンドで常に最新版にアップグレード
- セキュリティの観点で、システムから分離、隔離された環境で動作
が挙げられるのかなと思います。
これによって、ユーザーである私達が受けるデメリットは、
- 起動時間が少し長くなる
- システムと連携するようなアドオンが動作しません(GNOME Shell Extentions は使用できません)
- ローカルサービスと連携するようなアドオンが動作しません(KeepassXC によるパスワード入力ができません)
この内、GNOME Shell Extentions については、Ubuntu アプリでインストールすることで代用が可能なので良いとして、私にとっては KeepassXC が使えないのは、
なんですよ。
Snap版 Firefox を駆逐し、debパッケージ版を導入
この自身にとって「致命的」な問題を解消するために、
snapに代わって debパッケージで Firefox をインストールする ことにしたいと思います。
Snap版 Firefox をアンインストール
まず最初に、Snap版の Firefox をアンインストールします。
sudo snap remove firefox
Mozilla Firefox の PPA をシステムに追加
次に、Mozilla Team が提供している PPA(Personal Package Archive)のリポジトリを追加します。
sudo add-apt-repository ppa:mozillateam/ppa
add-apt-repository
を使用する前に、software-properties-common
パッケージを導入しておく必要があるかもしれません。
sudo apt install software-properties-common
PPA からのダウンロードを優先するように設定
これで、PPA から debパッケージ版の Firefox を導入できるように設定したのですが、この結果、 Firefox のダウンロードの経路は Snap と PPA の2つの経路が作られました。
よって、/etc/apt/preferences.d/mozilla-firefox
を作成することで、apt
にPPAからのダウンロードを優先するように教えてあげましょう。
echo '
Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
Package: firefox*
Pin: release o=Ubuntu*
Pin-Priority: -1
' | sudo tee /etc/apt/preferences.d/mozilla-firefox
ちなみに上記の設定ですが、Pin-Priority
の値はインストール元の優先度になります。この Pin-Priority で指定されている値の説明は以下のとおりです。
1001
- この値を設定することで、たとえダウングレードになったとしても、この優先度が指定されたリポジトリからインストールします。
-1
- この値を設定することで、ここで指定したバージョンからのインストールを禁止します。
あと、自動的にパケージをアップグレードできるように次のようにしておくことで、更に幸せになれるかもしれません。
echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
最後に、apt-cache policy
コマンドで、先程の Pin-Priority が正しく反映されているか確認します。
筆者の環境ですと以下のとおりになります。
$ apt-cache policy firefox
firefox:
インストールされているバージョン: 101.0.1+build1-0ubuntu0.22.04.1~mt1
候補: 101.0.1+build1-0ubuntu0.22.04.1~mt1
バージョンテーブル:
1:1snap1-0ubuntu2 -1
500 http://jp.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
*** 101.0.1+build1-0ubuntu0.22.04.1~mt1 500
500 https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy/main amd64 Packages
100 /var/lib/dpkg/status
AppArmor の設定
AppArmor は簡単に言えば、プログラムに対するアクセス制御を提供するシステムです。
KeepassXC と Firefox が通信できるようにするには、AppArmor による Firefox に対するアクセス制御を無効にする必要があります。
そのために、/etc/apparmor.d/usr.bin.firefox
へのシンボリックリンクを /etc/apparmor.d/disable/
に張ります。その上で、カーネルに AppArmor の定義から Firefox に関する設定を削除するように教えてあげます。
$ sudo ln -s /etc/apparmor.d/usr.bin.firefox /etc/apparmor.d/disable/
$ sudo apparmor_parser -R /etc/apparmor.d/usr.bin.firefox
やはり Snap パッケージ版の Firefox に戻したい!
将来的には、Snap版パッケージが改善されるかもしれません。
そうしたら、元通り Snapパッケージを優先するようにしたいという場合、前項の、
/etc/apt/preferences.d/mozilla-firefox
/etc/apt/apt.conf.d/51unattended-upgrades-firefox
の2つのファイルを削除し、次に、
/etc/apt/sources.list.d/
にあるmozillateam-ubuntu-ppa-jammy.list
を削除
するか、ファイルの内容をコメントアウトした上で、
sudo apt update && sudo apt install firefox
とします。
Let’s enjoy Linux Life!
これで、ようやく KeepassXC のパスワード補完をできるようになりました。
1件のコメント
DEXCS2022 for OpenFOAM(R) 不具合・更新情報 – オープンCAEコンサルタントOCSE^2 · 2022年11月22日 6:20 PM
[…] ース版はそうなっていましたが、それだけでは片手落ちでした。firefoxが更新された時にdeb版を優先するよう指定しておく必要がありました。詳しくはこちらの記事を参考にして下さい。 […]