DockerでビルドしたMozcをUbuntu 22.04 LTSにインストールする
この記事はUbuntu日和【第33回】フォントと日本語入力の、ホントの話(Wayland編)の副産物です。こっちのPVを上げるためのものなので必ず読んでくださいね(直球)。
動作確認バージョンは、2.29.5374.102です。
これからすることはパッケージ管理から外れることなので、それなりにリスクがあります。それを忘れないようにして、Mozcのライセンス(無保証とか)に従って行っていきましょう。
uim版/Fcitx版/Fcitx5版Mozcを使用している場合は諦めてください。MozcそのものはIBusのみにしか対応していません。パッケージではそれぞれパッチを当てて対応しているのですねー。
Dockerのインストール
Ubuntuのリポジトリ(apt/snap共に)にもDockerのパッケージはありますが、Dockerのオフィシャルパッケージを使う必要があります。インストール方法はこちらにありますが、一応コマンドラインでは以下のとおりです。
$ sudo apt install curl
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
$ sudo adduser ${USER} docker
追加したグループを有効にするためにも、一度再起動するといいでしょう。
Mozcのビルド
続いてMozcのビルドを行います。こちらもわかりやすいドキュメントがありますけど、コマンドラインでは以下のとおりです。
$ curl -O https://raw.githubusercontent.com/google/mozc/master/docker/ubuntu22.04/Dockerfile
Dockerfile
を編集し、確実にタグ2.29.5374.102をcloneするようにします。77行目の
RUN git clone https://github.com/google/mozc.git -b master --single-branch --recursive
を
RUN git clone https://github.com/google/mozc.git -b 2.29.5374.102 --single-branch --recursive
にしてください。-b
オプションはタグでも使えるのか……(知らなかった)。
続けて次のコマンドを実行してください。
$ docker build --rm --tag mozc_ubuntu22.04 .
$ docker create --interactive --tty --name mozc_build mozc_ubuntu22.04
うちだとdocker build
に400秒くらいかかりました。
コンテナができたので、Mozcをビルドします。
$ docker start mozc_build
$ docker exec mozc_build bazel build package --config oss_linux -c opt
$ docker cp mozc_build:/home/mozc_builder/work/mozc/src/bazel-bin/unix/mozc.zip .
うちの環境だとビルドに377秒くらいかかったようです。そこそこ速いですね(Ryzen 7 8700Gで4コア割当)。
ビルドしたパッケージはmozc.zipにまとめられるので、これを展開するのがすなわちインストールです。
インストールする
ビルドしたMozcにはmozc-utils-guiとemacs-mozc-binパッケージ相当のファイルが入っているため、一応インストールしておきます。
$ sudo apt install mozc-utils-gui emacs-mozc-bin
ただし現状のmozc-utils-guiはQt5、前述のとおり2.29.5200以降はQt6で、かなり高い確率で依存パッケージ(Qt6ですな)が足りません。インストールしておきましょう。
$ sudo apt install libqt6widgets6 qt6-wayland qt6-qpa-plugins
Qt6何もわからんマンなのでqt6-qpa-plugins
が曲者でした。
ようやくMozcをインストールします。
$ ibus exit
$ sudo unzip mozc.zip -d /tmp/
$ sudo cp -r /tmp/usr/ /
もう一度再起動します。
動作確認
最も簡単な動作確認方法は、「ばーじょん」を変換してみることでしょう。
このように「Mozc-2.29.5374.102+24.11.oss」になっていればうまく動いています。ちなみにこれはWaylandセッションです。
Waylandセッションでもmozc_rendererを使用する
MozcはデフォルトでX11セッションだとmozc_renderer、WaylandセッションだとIBusの候補ウィンドウを使用します。後者の例は↑のスクリーンショットです。
Waylandセッションでmozc_rendererを使用する方法はドキュメントに書かれているとおりで、~/.config/mozc/ibus_config.textproto
に
mozc_renderer {
enabled : True
compatible_wayland_desktop_names : ["GNOME"]
}
を追記します(Ubuntuの場合)。
一回ログアウトして再ログインすると、mozc_rendererが使用できるようになります。
たいていの場合は問題ないはずですが、何らかの理由でmozc_rendererに切り替わらない場合は、適当なQtアプリケーション(例えばfeatherpad
)を一度起動してMozcをオンにしてやると切り替わるようになりました。手元で起きていたものの再現しないので、参考までに。
では、自己責任でGood Luck!
Discussion