Linuxをデスクトップ環境として常用する場合、どうしても「コダワリ」、執着が災いして、茨の道を進んでしまうことがある。端的には、マイナーなディストリビューションを選択することだ。
その選択が単なる見栄のようなものに起因するのであれば、それは各人の嗜好の問題だ。しかし、あえてマイナーなディストリビューションに注目する理由が存在することもある。
例えば、Clear Linuxの場合、次のような要素が挙げられる。これは他のディストリビューションでは得られない、Clear Linuxならではの恩恵だ。
一方、Clear Linuxはデスクトップ版のイメージを配布しているものの、デスクトップ領域には積極的に注力しておらず、その用途でのパッケージ配布も少ない。アプリケーションは基本的にFlatpakに依存している。つまり恩恵とのトレードオフ要因だ。
Clear Linux OS is not intended to be a general-purpose Linux distribution, suitable for novice end-users. While we ship common applications, our purpose isn’t to make an OS for routine desktop tasks and provide immunity from all security threats in all situations.
https://docs.01.org/clearlinux/latest/about.html#id5
ならばいっそ、Clear Linuxはホストに専念させ、使いやすいディストリビューションでデスクトップ環境を構築し、コンテナとして運用するのはどうだろう。
例えば、UbuntuにMIDをインストールし、Clear Linuxのログイン画面でMIDを選択すれば、そのままコンテナのデスクトップが表示されるようなイメージだ。
Distroboxを使えば、それは可能だ。この投稿では、そのための手続きを紹介する。
前提
version | |
---|---|
Clear Linux Desktop*2 | 36470 |
Distrobox*3 | 1.3.2 |
Ubuntu container*4 | 22.04 |
MID*5 | 2.1.1 |
DistroboxからUbuntuコンテナまでの導入手順、MIDのインストールは以下に紹介する投稿の該当箇所を参照してほしい。
Clear Linuxでの作業 - Docker、Distroboxのインストールと、Ubuntuコンテナの導入
Clear LinuxにDocker、Distroboxをインストールし、Ubuntuコンテナを実装するところまで対応する。Mozc関連の対応は不要だ。
「/etc/hosts」には、次の情報を記述しておくこと。
127.0.0.1 localhost 127.0.0.1 [Clear Linuxのホスト名] 127.0.0.1 [Ubuntuコンテナの名前].[Clear Linuxのホスト名]
Ubuntuコンテナでの作業
先の作業で、次のコマンドを実行するところまで完了した。ターミナルはUbuntuコンテナ内を示している。MIDのインストールは、この状態で作業を進める。
distrobox enter ubuntu
- 必要なパッケージの導入
- MIDのダウンロード、インストール
参照する投稿はWSL上での環境構築に関するもので、コンテナの初期状態が若干異なっている。そのため導入するパッケージにも若干の変更がある。またアジア圏のフォントのパッケージも追加する。
今回導入する必要があるパッケージを反映した「apt install」は次のようになる。念のため、パッケージ一覧も併記しておく。
sudo apt install -y cpp fhist fonts-noto fonts-dejavu fonts-noto-cjk fonts-noto-cjk-extra freeglut3 libgtk2.0-0 libjpeg62 libtinfo5 nload pavucontrol rcs x11-apps x11-utils x11-xserver-utils xfonts-100dpi xfonts-75dpi xz-utils
🔎パッケージ一覧
- cpp
- fhist
- fonts-noto
- fonts-dejavu
- fonts-noto-cjk
- fonts-noto-cjk-extra
- freeglut3
- libgtk2.0-0
- libjpeg62
- libtinfo5
- nload
- pavucontrol
- rcs
- x11-apps
- x11-utils
- x11-xserver-utils
- xfonts-100dpi
- xfonts-75dpi
- xz-utils
MIDのインストール完了まで対応したら、次のコマンドを実行し、ファイル”maxx.desktop”をホーム・フォルダへコピーしておく。
cp /opt/MaXX/share/xsessions/maxx.desktop ~/
Distroboxがホスト、コンテナ間(Clear LinuxとUbuntuコンテナ)のホーム・フォルダを共通化してくれているため、ホーム・フォルダにファイルをコピーしておけば、どちら側からでも参照することができる。
Clear Linuxでの作業 - Clear Linuxログイン時のMID呼び出し
gdmはホストとなるClear Linux上で動作するのに対して、MIDはUbuntuコンテナ上で動作する。そのためGNOMEログイン画面でMIDを選択したとき、Clear LinuxはUbuntuコンテナを稼働させ、その中のMIDを呼び出す必要がある。このための仕掛けを設定する。
まずホーム・フォルダへコピーした”maxx.desktop”の内容を確認する。
[Desktop Entry]
Encoding=UTF-8
Name=MaXX Interactive Desktop
Comment=The MaXX Interactive Desktop - Indigo Release
Exec=/opt/MaXX/etc/skel/Xsession.dt
Type=Application
[Window Manager]
SessionManaged=true
「Exec」で指定されている実行パスを、Ubuntuコンテナを稼働させ、MIDを起動させるスクリプトへ置換する。
まずスクリプトを作成する。次の処理をホーム・フォルダへ保存する。ファイル名は”startMID.sh”とし、実行権限を付与しておく。
xhost +SI:localuser:$USER distrobox enter -T -n ubuntu -- bash -l -c '"/opt/MaXX/etc/skel/Xsession.dt"'
”msxx.desktop”のEXECは”startMID.sh”を呼び出す必要がある。”maxx.desktop”の「Exec」を次のように書き換える。
Exec=~/startMID.sh
次のコマンドを実行し、”maxx.desktop”を所定のフォルダへコピーする。
sudo cp ~/maxx.desktop /usr/share/xsession/
ここまでの作業が完了したら、Clear Linuxからログオフする。
Clear LinuxのログインからMIDの起動まで
Clear Linuxのログイン画面を確認すると、「MaXX Interactive Desktop」が追加されているのが分かる。
このオプションを選択してログインすると、Ubuntuコンテナ上のMIDが表示される。
ターミナルを起動すると、ホスト名がUbuntuコンテナを指しているのが分かる。つまりカレント・ユーザーはコンテナにログインしている。
さらにホーム・フォルダを表示してみる。先程Clear Linuxで作成した次のファイルが表示されているのが分かる。
- maxx.desktop
- startMID.sh
つまりDistroboxが機能しており、Clear LinuxとUbuntuコンテナ間でホーム・フォルダが共通化しているのが分かる。