Manjaro ARM復活

RaspberryPi OS以外のARMのLinux distroでMozcは使えますよね,あ,でも実例が示せない,ということで久しぶりにManjaro ARMをインストールしてみました.サーバーの予備機の位置づけのRaspberry Pi 4 RAM 4GB (RPi4 4G)です.

しかし,新規インストールからどうやってもMozcが使えません.昔の下卑た言い方でいうと「やきが回った」ようです😓 省略しますがいろいろやりました.fcitx (古いversion4のほう)も,fcitx5も試しましたが,動いてくれません

また,けしからんことにjoeがなくて,ネットで調べるとしばらくupdateされていないから,去年のいつか,Manjaroから削除されてしまったそうです.

記憶が正しければ,去年まではMozcが使えていたはずなので,どこかに去年いじっていたManjaro ARMのバックアップはないかなとあまり期待しないで探したらありました.2021年3月23日のものです.

SSDのvfatパーティションに/bootの内容を,残りをext4のパーティションにrsyncに–deleteオプションを付けてコピーしました.

RPi4 4GにSSDをつないで起動すると,ちゃんとManjaroのログイン画面まで進みます.たいしたもんです.

しかし,ここから先が苦難の道です.わずか1年3か月前の状態なのに,GUIのupdaterではupdateできません.

あちこちを参照して,まず(以下全てroot権限),

pacman-mirrors -f

をしました.これは成功しますが,その後のupdateではエラーが出ます.エラーメッセージにlibcanberraとlibcanberra-pulseがなんだかんだ言うので,その2つを,

pacman -R libcanberra libcanberra-pulse

で削除しました.よく見ませんでしたが,依存性のあるたくさんのパッケージが削除されました.それでも,次に,

pacman -Syyu

をしたら,今度は成功します.起動するとシンプルなグリーターが出ますが,パスワードを入力してリターンしても先に進みません.

そこでさらにあちこちの情報を参照したりしなかったりして,以下のパッケージをインストールしたり削除したりまたインストールしたりしました.

  • gnome
  • gdm
  • sddm

最終的には,gnomeとgdmは削除して,

ここら辺の記事を参考に,sddmとkdeのパッケージについて再インストールしたところ,無事KDE plasma desktopが起動するようになりました.

ここまで何とか来ましたが,マウスポインターの動きが遅くて使い物にならなくなりました.これは “known issue”だそうです.

要は,/boot/config.txtの dtoverlay=vc4-fkms-v3ddtoverlay=vc4-kms-v3d-pi4 に書き換えればよいです.

Mozcもjoeも使えます.あちこち壊れている可能性もありますが,updaterは “Up to date” といいます.

やっぱりバックアップは取っとくもんです.

復活させたManjaro ARMでは,fcitx5がインストールされ,機能しています.
Powered USB HUB経由.SSDをRPi4 4G本体直結ではブートしません.
libcanberraとlibcanberra-pulseは,update完了後に再インストールしておきました.何に使うかよくわかりませんが😓

SlackwareARM 15でMozcはNG

ついでに,SlackwareARM 15でも,fcitx-mozcのbuildを試してみました.下準備としてのzinniaは難なくbuild & installできました.

fcitx-mozc本体に関しては,748ステップとかのbuildは完了しますが,そのあとの過程でエラーが出てしまいます.

SlackwareARMでGUIを使うつもりはないのでこれ以上はやめておきます

現在Slackwareをインストールしている唯一の実機(Raspberry Pi4).
あとで,うんと暇になったら,もう少しちゃんとしたレポートを書くかもしれません.

Slackware 15でMozcは,〇32bit, ×64bit

2023/08/22の注: 後にfcitx5-MozcのSlackbuildsスクリプトがJW(Shinichi Abe)さんにより登録され,64bit環境で使用できることが確認できました

Slackware 14.2用にMozcのビルドスクリプトを作成されたクロさんが,Slackware 15用も作成され,SlackBuildsに登録されていました.

当BLOGにとりとめなく書いてますが,現在Slackwareは,SlackwareARM 15をサーバー用に使用していますが,GUIにいろいろ不具合や不足があるため,CUIで使用しています.

x86用,AMD64用については,つい最近まで15のインストールは試していませんでした.

ふと思って,数日前からSlackware64 15をKVM/QEMUとVMWare Fusionそれぞれの環境にインストールして試しはじめました.

日本語入力は,fcitx-anthyがお仕着せで着いてきますが,やはりMozcをインストールしたいところです.

そこで,SlackBuildsを見ると,Mozcのビルドスクリプトをクロさんが既に用意して下さっていることを知りました.

まず,VMWare Fusionのほうで,

sbopkg -b fcitx-mozc

を実行すると,少々時間はかかりますが,無事ビルドが成功します.そこで,installpkgでできあがったパッケージをインスールしました.

設定については省略しますが,ちゃんと起動して,トレイにMozcのアイコンがでますが,残念ながらキー入力しても,英数キーに対応した半角文字が表示されるのみです

試しに,32bitのオリジナルであるSlackware 15の仮想マシンをKVM/QEMUのほうに仕立てて,fcitx-mozcを同様にインストールすると,ちゃんと使えます.

Slackware 15 (オリジナルの32bit版)では,Mozcは正常に機能する

念のため,KVM/QEMU環境でインストールしたSlackware64 15の方でも試しましたが,同じようにパッケージはできてインストールできて,トレイにアイコンが出ますが,日本語入力はできませんでした.

ということで,64bitについては,ビルドスクリプトに何か64bit用のhackが必要なのでしょう.Slackwareに対する熱量もずいぶん下がってしまいましたし,多少熱量があっても全然解りそうもないので,あきらめます.

SDDMが機能しない,Konquerorなど一部のソフトが動かない.
Slackware 15やSlackware64 15に用意されているFirefox-ESRがなく,Konquerorが動かないことから,使用可能なWebブラウザが存在しない.
細かい話なので省略していますが,zinniaはfcitx-mozcの前にbuild & installしてあります.

新システムでのLet’s Encrypt

注: 最後にまとめがあります.

Let’s EncryptがPython 2.7.xのサポートをやめてしまったので,管理するいくつかのサーバーでは,2.7がサポートされた最後のころのgitをupdateしないで使っていました

このほど,そのうち1台はPython 3.xが搭載されたシステムに移行し,今回移行後はじめての証明書の更新時期を迎えたので,git pull して現在のgitレポジトリーに同期してから証明書の更新を試験的に行ってみました.Branchはmasterです.

しかし,tools/venv.pyの実行でエラーが出てしまいます😓

python-augeasがないとのエラー(もしくはそのbuildの過程のエラー)を出しているようなので,pip3でインストールを試みますが,今度はwheelがないというので,先にwheelをインストールして,続いてpython-augeasをインストールしてみました.エラーが出ます.

SlackBuildsに,python-augeasがあるので,

sbopkg -i python-augeas

をしてみたところ,python-augeas-0.5.0-arm-1_SBoがインストールされました.もう一度,tools/venv.pyを試みます.

だめでした.どうも,python-augeas-1.0.0 以上が必要そうなので,

pip3 install -U python-augeas

を試しますが,1.0.0以上のbuildに失敗します.

大量に出るエラーメッセージを見て,なんとなく,python-augeasのもとになる, “augeas” がそもそもインストールされてないんじゃないかと思い,システムを見てみると,たしかにそんなパッケージはインストールされていません.さいわい,SlackBuildsにはあるので,

sbopkg -i augeas

を実行したら,augeas-1.4.0-arm-1_SBo.tgzができて,インストールできました

python-augeasのインストールは,Let’s Encryptのvenv.pyがやるはずなので,もういちど,tools/venv.pyを実行すると,うまくいったようで,python-augeasのところは無事通過して,rustcを使った超重量級のbuildが繰り広げられます😓

計ったわけではありませんが,40分くらいでvenv.pyの実行が完了しました.

このあと,

source venv/bin/activate

を実行してから,certbotが実行できて,証明書の更新もできました.

まとめ

SlackwareARM 15.0で,Let’s Encryptの最新git repositoryに同期させて,venv.pyの実行と,certbotによる証明書の更新に成功しました

事前に必要になるのは, augeas(およびvirtualenvも必要かも) で,sbopkgにてインストールする必要があります.

SlackwareARM 15でも上記記事のままの手順ですが,venv.shはvenv.pyにします.

現在,3.9.12.
SlackwareARM 14.2からSlackwareARM 15.0.
augeasに加えて,virtualenvのインストールが必要な旨,自分のメモ(非公開)に書いてありました😓メモの元になるリンクはこれです.LinuxQuestions.org: [SOLVED] Let’s Encrypt.
メモリーの使用量がそれほど多くないだけましですが.
たぶん,Slackware 15.0, Slackware64 15.0も同様.

実マシンの仮想化 Lesson 4 起動のまじない(grub)

実マシンから,仮想ディスクにまるまるコピーできたら,あとは若干のまじないが必要です.

一つは,まじないというより即物的な設定で,/etc/fstabの書き換えです.とりあえずは,仮想ディスクを/dev/sdaとして設定しておきます.この作業はコピーが終了したら仮想ディスクのイメージをマウントしたまま作業した方が楽です,というか,他にやりようがないです

次は一番肝心なgrubのインストールです.grubをインストールするためには,そのターゲットとなるディスクから起動した環境が必要となります.しかし,まだ起動の仕組みがないので自力ではできません.そのためにchrootを利用しますが,色々ややこしいので,後で自分でわかるように,固定ページに書いときました.

ちなみに,Slackwareの場合は,インストールDVDイメージから起動する際に,ルートパーティションを指定できるので,chrootしなくてもgrubのインストールができます.

ターゲットのパーティションをルートにできたら,ルート権限で,

grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

実行します.これは,Slackware, Manjaro, Debian共通です.

これで,実マシンからコンバートした仮想マシンが起動しますが,Debianでは

sudo update-initramfs -u

を実行するなど,多少のチューニングが必要です.

Manjaroの実マシンの中で,仮想化したManjaroを動かしている様子.
インストール用DVDイメージから起動して,マウントしてという方法がないわけではないですが,活きているWSに,それもマウント済ですから,それを利用しない手はないです.