最低限のパッケージ導入で、インストール手順をrefineした手順を新たに投稿した。特別な理由が無ければ、2022年版の手順を参照してほしい。
impsbl.hatenablog.jp
先日、WSL2で稼働するUbuntuにてGnomeを動作させた。Gnomeが動作するということは、もちろんMID (MaXX Interactive Desktop)も動作する。
MIDとは、SGI (Silicon Graphics International) 製ワークステーションに搭載されたOS、IRIXのデスクトップをLinux上に再現するプロジェクトだ。これをWSL2で稼働するUbuntuへインストールする。
先日の投稿で紹介した手順を完了していることを、インストール環境の前提としている。Microsoft StoreからダウンロードしたUbuntuへ、ubuntu-deskop-minimalをインストールし、Gnomeが起動するところまでを確認済みの環境だ。
その環境へ、MID v2.1.1をインストールする手順を紹介する。
Ubuntuへの導入手順は、次のサイトに紹介されている。この投稿で紹介する手順は、そこに一手間加えている。
docs.maxxinteractive.com
インストール・スクリプトの準備
インストール手順に紹介されているコマンド群を実行するならば、サイトのコマンドをコピー、編集し、シェル・スクリプトとして実行するのが良い。インストール手順で紹介されている作業は、端的に3つのステップに分かれている。それぞれをスクリプト化して、個別に実行することにした。
Step.1 必要なパッケージの導入
🔎step1.sh
apt install cpp libxaw7 libjpeg62 libgtk2.0-0 x11-apps freeglut3 apt install pavucontrol apt install xfonts-100dpi xfonts-75dpi apt install fonts-dejavu fonts-noto apt install libtinfo5 ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5
step1.shでは、日本語など、アジア圏のフォントを導入するためのコマンドを意図的に省いている。具体的には、次のコマンドだ。
// Additional Fonts for Japanese support
apt install fonts-noto-cjk fonts-noto-cjk-extra fonts-noto-cjk
理由は次の3点だ。MIDのインストールを通じて、中途半端に日本語対応する必要はない。
- WSLはWindows上で動作しており、必要ならばWindowsのフォントを参照すればよい。
- WSL、Windows間で、簡単にファイル、入出力のやり取りができる。
- Ubuntuの日本語対応が必要ならば、language-packを導入したほうが良い。
そもそも日本語対応などしなくとも、日本語の表示はできるのだ。冒頭のサンプル画像を見て欲しい。
分かりにくいかもしれないので、テキスト・エディタの画面を切り抜いておいた。これは、このブログのテキストをWindowsからMID上のテキスト・エディタへcopy&pasteしたものだ。
日本語フォントをインストールしていないが、文字化けもしていない。
もしUbuntuでの日本語対応が必要ならば、GnomeデスクトップのGUIを介して操作すればよいし、language-pack-jaを導入すれば、必要な日本語フォントもインストールされる。
MIDのインストールのためだけに、日本語フォントだけインストールする必要はない。
Step.2 MIDのダウンロード、インストール
🔎step2.sh
cd /tmp wget https://s3.ca-central-1.amazonaws.com/cdn.maxxinteractive.com/maxx-desktop-installer/MaXX-Desktop-LINUX-x64-2.1.1-Installer.sh chmod a+x MaXX-Desktop-LINUX-x64-2.1.1-Installer.sh ./MaXX-Desktop-LINUX-x64-2.1.1-Installer.sh
AWSからMIDのインストール・スクリプトをダウンロード、実行することで、MIDそのものをダウンロード、実行することになる。
step.3 ユーザー環境の設定
🔎step3.sh
cd $HOME /opt/MaXX/share/misc/HOME/MaXX-Desktop-v2.1.1-upgrade.sh
インストール・スクリプトの実行
作成した3つのスクリプトを順番に実行する。注意したいのは、次の2点だ。
- step1.shとstep2.shはrootで実行する。
- step3.shはユーザーとして実行する。
実行コマンドは次のようになるだろう。
🔎実行コマンド
sudo chmod 777 step*.sh sudo ./step1.sh sudo ./step2.sh ./step3.sh
起動スクリプトの準備
MIDを起動するためのシェル・スクリプトを作成する。次のコマンドを、シェル・スクリプトファイルとして保存する。私は”maxx.sh”とした。
保存したファイルの権限変更を忘れないこと。X serverを起動し、maxx.shを実行すれば、MIDが起動する。
🔎maxx.sh
sudo service dbus restart sudo service x11-common restart . /opt/MaXX/etc/system.runtime . /opt/MaXX/etc/skel/Xsession.dt
chmod 777 maxx.sh
なお起動時に、いくつかのエラーが出力されている。サウンド関連のエラーは放置するとして、フォント関連のエラーは深堀してみる価値がありそうだ。
何にせよ、実用上の問題は生じていない。
Warning: Missing charsets in String to FontSet conversion
🔎エラー出力
wsluser@paulownia:~$ ./maxx.sh [sudo] password for wsluser: * Stopping system message bus dbus [ OK ] * Starting system message bus dbus [ OK ] * Setting up X socket directories... [ OK ] xset: bad font path element (#0), possible causes are: Directory does not exist or has wrong permissions Directory missing fonts.dir Incorrect font server address or syntax xsettingsd: Loaded 16 settings from /home/wsluser/.maxxdesktop/xsettingsd.conf xsettingsd: Created window 0x80001 on screen 0 with timestamp 23800093 xsettingsd: Selection _XSETTINGS_S0 is owned by 0x0 xsettingsd: Took ownership of selection _XSETTINGS_S0 ALSA lib confmisc.c:767:(parse_card) cannot find card '0' ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory ALSA lib confmisc.c:1246:(snd_func_refer) error evaluating name ALSA lib conf.c:4732:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory ALSA lib conf.c:5220:(snd_config_expand) Evaluate error: No such file or directory ALSA lib pcm.c:2642:(snd_pcm_open_noupdate) Unknown PCM default aplay: main:830: audio open error: No such file or directory Connection failure: Connection refused pa_context_connect() failed: Connection refused Warning: Missing charsets in String to FontSet conversion