nplの小部屋

しっかりブログ的なものを書くときもあれば雑なメモのときもある

Ubuntu 23.10でFcitx5を使おうとしたらAppArmorに何故か叱られた話

(◕‿‿◕) < わけがわからないよ なお筆者はまどマギをよく知らない

Ubuntu 24.04を試したかっただけなのに

もうすぐUbuntu 24.04 LTSリリースの季節ということで、本来はUbuntu 24.04の開発版を触ってみる予定でした。

が、5GB以上あるISOファイルが何故か4GBでダウンロードが止まったり、Vivaldiブラウザがダウンロードの再開操作を受け付けず1からダウンロードし直そうとしたり(wget -cで解決)、Regolith Desktopが認証ウィンドウを表示してくれなかったり(GNOMEに移動して解決)と、準備段階からしてグダグダな状態が続いていました。

そしていざUbuntu 24.04が書き込まれたUSBメモリを空き状態のノートパソコンに挿してみたところ、Ubuntu自体起動しないという問題に直面して大きなショックを受けたため、気分直しにUbuntu 23.10を入れることにしました。

Ubuntu 23.10をインストールするのは今回が初めてです。

ibusを蹴ってfcitx5を入れて終わる予定だった

個人的にはUbuntuにおけるibusの体験があまり良くなく(Ctrl+Backspaceをすると即クラッシュとか)、Wayland上で日本語入力するならFcitx 5の方がいいという曖昧な印象でFcitx 5を使用するつもりでいました。

とりあえず以下のコマンドでFcitx 5のインストールと切り替え操作を行いました。

sudo apt install fcitx5-mozc
im-config -n fcitx5

本来であれば再起動後にはFcitx 5を利用して普通に日本語入力ができるはずでした。

が…

Snapか…

起動後、Fcitx 5が起動していることを確認し、端末上でも日本語入力ができることを確認していました。

が、その後Firefoxを開いたところ、日本語入力ができなくなっていることに気が付きました。

この時点で内心「Snapか…」という思い初めていました。

重症患者がいた

直後にもう一つのSnapアプリケーションである「アプリセンター」を開いたところ、こちらは日本語入力ができないどころか、Fcitx 5が起動している状態だと文字入力そのものができないという事態に陥っており、この時点でUbuntu24.04インストール失敗の仕切り直しという気分ではなくなっていました。

AppArmorか…

この問題を調べるため、Firefoxを端末で起動してみたところ、起動直後から入力に関する問題がエラーとして表示されていました。

Create input context failed: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: An AppArmor policy prevents this sender from sending this message to this recipient; type="method_call", sender=":1.317" (uid=1000 pid=68181 comm="/snap/firefox/3836/usr/lib/firefox/firefox " label="/snap/firefox/3836/usr/lib/firefox/firefox (enforce)") interface="org.freedesktop.IBus" member="CreateInputContext" error name="(unset)" requested_reply="0" destination="org.freedesktop.IBus" (uid=1000 pid=16975 comm="fcitx5 -d " label="unconfined").

アプリセンターでも同様のログが表示されていた他、キーを押す毎に

ibus_im_context_filter_keypress: assertion 'ibusimcontext->cancellable != NU++ || ibus_bus_is_connected (_bus) == FALSE' failed

というエラーが吐き出されていました。

結論を焦った筆者

※ここには盛大な勘違いが記載されているので畳んでいます。

情報不足

このエラーについてDuckDuckGoで調べてもFirefoxを公式バイナリ版にする話やあまり関係ない内容のみであり、Twitter(現X)で同様の報告は3しかありませんでした(そもそもFcitx 5に切り替えたユーザーが少ない?)。

多分無闇にやってはいけない

このときの自分は問題の解決に対する気力はなくなっていたため、AppArmorを無効にすることで一時的解決を図りました。

gihyo.jpの記事を参考に以下のコマンドを実行して再起動しました。

sudo systemctl stop apparmor.service
sudo systemctl disable apparmor.service

再起動後、再びSnapアプリを起動してみたところ、無事Fcitx 5で入力をすることができました。

真相は闇の中へ

しばらくしてから、この問題について(勉強も兼ねて)バグ報告をしようと、以下のコマンドで有効にしなおしました。

sudo systemctl enable apparmor.service

しかし、困ったことに、再起動後には同様の手順を踏んでも、文字入力ができないという問題は解消されてしまい、エラーも発生しなくなっていました。

結論?

何もしてないのに壊れた後、大したこともしてないのに直ってしまった。

「結論とは…?」と疑問に思うような内容ですが、「こんなことがあった」という備忘録です。

筆者がアホだった

筆者は記事作成前、雑な調査でAppArmorを無効にしたことで問題を解決したつもりになっていましたが、もう一度Ubuntu 23.10を入れたときに再発し、AppArmorを無効にしても直らなかったので再調査をしたところ、非常にかんたんな方法で修正することができました

sudo apt autoremove ibus-mozc

…競合ですね。

結論(再)

fcitx5入れたらibusを吹き飛ばす(か、無効にする)