Chap-30-2. AlmaLinux で mozc を使う

 AlmaLinux 8.x では Fedora のリポを有効化して ibus-mozc がインストール出来ました。ALmaLinux 9.0 になってそれが出来なくなりました。なので、自前で適当に工夫してやってみます。



Sec-1.結果としてどうだったのか
Sec-2.まず Ubuntu でちょっとやってみる
Sec-3.Flatpak 版の fcitx5-mozc を Almalinux で使ってみる
Sec-4.Git から ibus-mozc を Almalinux で構築してみる
Sec-5.やってみての感想




Sec-1.結果としてどうだったのか

 やってみた結果を最初に書いておきます。

こんな感じでどちらも小さな欠点があります。ただし、一応普通に日本語入力出来ます。mozc 自体は快調です。




Sec-2.まず Ubuntu でちょっとやってみる

 flatpak 版には制約があります。まず Ubuntu に flatpak 版 fcitx5-mozc を入れて様子を見ます。(このセクションは制約の様子を見るためにやってみるだけです。実際にはやらなくても良いです、勿論)
やり方は、まず英語版で Ubuntu をインストール。UTF-8 対応なので普通に日本語表示も入力も出来ます。
これに # flatpak install fcitx5 とすると選択肢が出ます。多分 6 と 7 を入れればオケです。(fcitx5 と fcitx5-mozc)
後は gnome-tweaks のスタートアップアプリケーションに fcitx5 を入れておきます。.bash_profile は ArcoLinux のチャプタにあるようにします。

export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

export DefaultIMModule=fcitx5 の記述は不要です。

次に、例によって input-method の窓をトップのところに開けます。gnome-software で extension(拡張) を検索すると flatpak 版の extension (拡張)が出てきますのでこれをインストール。青いヤツ。


screen-1

これを起動するとプラグインを探せるので input method と入力して出てきたプラグインをインストール。下の絵で一番上のヤツです。自動的にinput method の窓を開ける設定になります。次回リブート時に窓が開きます。


screen-2

 立ち上がると右上に窓があいていてキーボードみたいな絵があります。右クリックして一番下の設定を押すと例の fcitx5 設定が出ます。もしもキーボードが英語になっていたら日本語に直します。


screen-5



screen-3

 これだけ準備して再度リブートすると日本語入力が問題なく出来るように見えますが、実は gtk2 にしか対応していない(と思われるもの)には入力出来ません、sylpheed にはどうやっても入力できません。

 Ubuntu の場合は、実はここでひと工夫出来ます。パッケージの中に fcitx5-frontend-gtk2 ってのがあります。これをインストールすると sypheed にも日本語入力出来る様になります。さすがに Ubuntu は違います、良く出来てる。
つまり、flatpak 版の fcitx5-mozc が gtk2 に対応していないので、その分のフロントエンドを flatpak からではなく Ubuntu のパッケージからまかなうことができちゃいます。
これは Alma では無理と思われます。






Sec-3.Flatpak 版の fcitx5-mozc を Almalinux で使ってみる

 やり方は上の Ubuntu (英語版)に入れたのと同じに出来ます。説明省略。

 で、やった結果ですが gtk2 対応が出来ませんでした。Ubuntu とは違って、そこだけがうまく行きません。AlmaLinux 版の firefox もどうやら gtk2 対応のようで、日本語入力出来ませんでした。
それ以外は快調に日本語入力出来ました。日本語名のディレクトリを作ってみました。うまく日本語入力できました。


screen-x

ブラウザはその後 flatpak 版にすることで、firefox、chromium、google-chrome の全てで日本語入力出来ました。しかし sylpheed はどうやってもダメでした。もしもこの fcitx5-mozc を使うならメーラは evolution とか別のに代える必要があります。flatpak 版の evolution では日本語入力出来ました。AlmaLinux の evolution は試していません。

なお、git を利用して gtk2 対応のフロントエンド相当(fcitx5-gtk)を作って入れてみましたが Ubuntu のようには行きませんでした。 うまく行かなかったのでやり方は省略します。





Sec-4.Git から ibus-mozc を Almalinux で構築してみる

 コンパイルにチャレンジです。
まず準備として epel-release を有効化します。(Chap-30 参照)
また、/etc/yum.repos.d/ の中のリポを全て enabled=1 にして有効化します。mozc 関連のコンパイルはいろんなパッケージが必要です。いちいち該当リポを探るのは大変なので、全部有効化しておきます。
bazel が必要ですが Alma のリポに無いようなので flatpak から入れます。flatpak はパスの通っていないところにインストールするので、ファイル場所を探りパスの通っているところに適当にシンボリックリンク貼っておきます
作業前に入れておくパッケージは以下のものです。

libtracecmd libtracecmd-devel extra-cmake-modules xcb-util*
dbus-devel libevent-devel libuuid-devel fmt fmt-devel libxkbfile-devel expat-devel libxkbcommon-x11-devel libxkbcommon-devel
iso-codes-devel xkeyboard-config-devel json-c-devel wayland-devel wayland-protocols-devel enchant2-devel
gobject-introspection-devel python3-pkgconfig python3-colcon-pkg-config gtk2-devel gtk3-devel gtk4-devel
qt5-devel
ibus-devel

xcb-util* の後ろはアスタリスク付いてます。

パッケージインストール以後の作業はシンプルです。適当な場所、例えばホームディレクトリで以下のとおり。


$ git clone https://github.com/google/mozc.git
$ cd mozc
$ git submodule update --init --recursive
$ cd src
$ bazel build -c opt --copt=-fPIC  --config oss_linux  unix/ibus:ibus_mozc server:mozc_server gui/tool:mozc_tool renderer:mozc_renderer

以上です。シンプルです。
1400くらいのファイルをコンパイルします。13分とか14分くらいかかりました。Athlon 3000G はそんなに早くないです。所詮 4 スレッドだし、笑。

インストールについては幸いにネット上にインストールスクリプトがアップされていましたので、それを利用しました。
URL はうっかり失念してしいました。著者さんには申し訳ないです。英語のウェブサイトでしたが、もしかしたら日本人の方のウェブサイトだったかと思います。

スクリプトは基本的に以下のとおり。(このスクリプトは勿論、URLを失念してしまったところの著者さんのものです。私のものではありません)


#!/usr/bin/env bash

LIB_MOZC=/usr/lib/mozc
LIB_IBUS_MOZC=/usr/lib/ibus-mozc
SHARE_IBUS_COMPONENT=/usr/share/ibus/component
SHARE_IBUS_MOZC=/usr/share/ibus-mozc
BIN=/usr/bin

# Create directories.
mkdir -p $LIB_MOZC
mkdir -p $LIB_IBUS_MOZC
mkdir -p $SHARE_IBUS_MOZC

# Copy binaries
cp -f bazel-bin/gui/tool/mozc_tool $LIB_MOZC
cp -f bazel-bin/renderer/mozc_renderer $LIB_MOZC
cp -f bazel-bin/server/mozc_server $LIB_MOZC
cp -f bazel-bin/unix/ibus/ibus_mozc $LIB_IBUS_MOZC/ibus-engine-mozc
cp -f bazel-bin/unix/emacs/mozc_emacs_helper $BIN
cp -f bazel-bin/unix/ibus/mozc.xml $SHARE_IBUS_COMPONENT
unzip -o bazel-bin/unix/icons.zip -d $SHARE_IBUS_MOZC
##

さて、動作。
ibus なので gnome-control-center (設定)からいつものように ibus-mozc を選んでおいてから、リブート。
それで確かに ibus-mozc が動いたマークがトップバーに出ました。が、ここでひと工夫必要、笑。
そのままでは ibus-mozc が反応しません。一度、トップバーのマークのところを日本語とmozcの間で行ったり来たりクリックした後、キーボード配列を画面に出します。すると、 ibus-mozc が無事に動き出します。
キーボード・ショートカット変更も自由に出来ます。それは Chap-27. 参照。
幸い sylpheed を含めて全てのソフトウェアに日本語入力出来ました。ヤレヤレ・・笑。
この ibus-mozc は上記 flatpak 版の fcitx5-mozc よりも問題なく日本語入力出来ます。ただし、最初に立ち上げた時にひと工夫必要、笑。
最初のひと工夫必要なのは、例えば「firefox を起動してすぐ落とす」ってのでもオケです。それで無事に ibus-mozc が動き出します。


 このひと工夫しないと ibus-mozc が動かない問題は、AUR から Arch 系に ibus-mozc を入れたときと全く同じです。
あっちも基本的に git を使って ibus-mozc を構築するので、同じソースを利用、同じバグがあるってことですね。
ただし、このバグは mozc 側のバグなのか gnome 側のバグなのかわからないです。もしかしたら、 gnome 側の問題かもしれません。
 実はコンパイルに必要なパッケージは、少し余分に入れている可能性があります。作業として fcitx5-mozc を構築した時に入れたパッケージです。そっちは、コンパイルは無事に終了したものの設定ファイルが用意できず動かすことは出来ませんでした。しかし入れたパッケージの名前はこの Section で役に立ちました。






Sec-5.やってみての感想(というより、結論?)

 ここはSec-1.に書いたことの繰り返しです。つまり

 上記に加えて ibus-anthy で満足しているってのも一つの選択肢です。いまの anthy はメンテナンス状態が良いです。


 個人的には、どれかを選ぶという状況ではなくなりました。
2021年夏以前、何年か Debian 主体でやってきました。Debian 11 に上がって Debian 一時的に止めました。うちのシステムだとどうしてもグラボを刺して Debian 入れて、またグラボを外す必要があります。面倒。
それで Almalinux に乗り換えました。2021夏から一年くらい Almalinux でやってきました。
2022夏になって、mozc が使いたくなってチャレンジを始めました。
しかし作業をするうちにそのヨコタで Arch に手を出して想定外に良かったので、常用で使い始めました。インストールが厄介なので人様にすすめる訳にはいきませんが、自分で使う分には良い OS です。2022-07
Arch は普通に fcitx5-mozc が動きます。問題無いです。
結局 Almalinux で mozc を使おうとチャレンジをはじめて、作業途中でやる必要が無くなりました、笑。