Chap-.34 Slackware の試用

2024-10
 以前は Salix の flatpak を Slackwre に流用して利便性を向上させました。2024-10 時点で同じことをやってみたら、うまくいきませんでした。
それで今回は、pkgs.org から slackware 用の flatpak を持ってきて使ってみます。これを利用して vlc、brasero、evolution、libreoffice 等をインストールしてみます。
また、今回は Slackware のみの記述とします。Salix の記述は特に前回と変える必要無さそうです。前回分を見てください。



これまで以下の3つの視点で使いやすいかどうか見てきました。

Slackware はもともと a.系と b.系には強いので書くことはあまりありません。そこは簡便記述。c.を少し丁寧に書きます。


**** Slackware-15.0 ****
Sec-1.インストール
Sec-2.日本語入力の設定
Sec-3.UNIX 系らしく最初に試すこと
Sec-4.CUI でサーバ利用
Sec-5.Windows 代替としての利用(ATW)
Sec-6.全般としての印象

**** ローリングリリースの特質 ****
Sec-23.Salix-15.0 のパッケージを利用 (Windows代替のため)
Sec-24.全般としての印象




Sec-1.インストール

 Slackware の従来どおりです。説明省略です。
GUI については TEX、Game などを除き、フルインストールしました。
CUI については X11、Xfce、KDE、Game などをインストール対象外としました。Emacs も除外です。Slackware の Emacs は X11 前提なので CUI インストール状態では動かないです。X11 を入れれば動きます。(X11運用していなくても)

見た目の美しさとかフォントがイマイチだなあと感じたら、是非とも逆襲さんのサイトを見ることをおすすめします。参考になります。


補足
 インストール直後に # slackpkg check-updates やるとエラーが出ることがあるようです。

ERROR: Verification of the  gpg signature on CHECKSUMS.md5
       failed! This could mean that the file is out of date
       or has been tampered with. If you use mirrors.slackware.com
       as your mirror, this could also mean that the mirror to
       which you got redirected is not yet updated with the most
       recent changes in the Slackware tree.

ようするに、ディスクにインストールされた gpg が古いらしい。つまりインストールメディア中の gpg が古い、汗。
この場合、以下のように gpg を更新してから再び作業するとうまくいくと思います。

# slackpkg update gpg

もしもこれでうまく行かないなら、ミラーを別のものに変えて再挑戦。それでうまくいきます。





Sec-2.日本語入力の設定

   今回は ibus-anthy を使いました。flatpak から入れる fcitx5-mozc は gtk2 系に入力出来ないとかクセがあります。一方で、最近の anthy はメンテ状態が良くて安定しているし、変換も良好です。なので mozc にこだわらずに、あるもの(anthy)を使うことにしました。Slackware は anthy との相性が良いと思います。
Xfce は ibus-anthy、fcitx-anthy ともに動きます。KDE は fcitx-anthy しか動かせませんでした。
fcitx-anthy 版の設定画面は(chap-27. Sec-6 ibus-anthy版)と異なっています。ただし設定項目は同等です。






Sec-3.UNIX 系らしく最初に試すこと

 例によって普通の UNIX マシンらしく管理・設定ができるか、以下の項目を試しました。ギークぽい使い方前提。

*NetworkManager を選んでおけば、IPアドレス等の管理は Debian と全く同じです。
*rc.local は最初から動きます。
*パケットフィルタは nftables が使えます。問題無いです。
*デーモン管理は /etc/rc.d/ にスクリプトがあるので、それで簡単に管理出来ます。。
*シリアル回線について
 シリアル回線を使ってルータの制御は com ポート増設用のカードを刺して使っても、USB-RJ のケーブルを刺して使っても問題無いです。システム標準で cu コマンドもあります。
2024-夏時点で Ubuntu-lts と Slackware-stable の2ディストリは com ポート増設でも USB-RJ ケーブルでも動きます。うちのハードウェアの問題かもしれませんが Debian、SUSE、Arch 系は com ポート増設でしかうまくいかず、USB-RJ ケーブルを指すとハングアップしました。
*各種ソフトウェアは全て問題なくコンパイル・インストール出来ます。





Sec-4.CUI でサーバ利用

 実績も多そうだし、経験した方も多そう。何も問題無く、特に書くことはありません。インターネットサーバで運用しても順調です。







Sec-5.Windows 代替としての利用(ATW)

 まずは flatpak を何とかして動かします。

 flatpak は pkgs.org で slackware-15 を選び、Alien Bob を選ぶと flatpak-1.12.7 があります。この依存パッケージも同じページに5つ上がっています。なのでそれ(合計6つ)をダウンロード。適当なディレクトリに入れておいて # upgradepkg --install-new ./* もしくは # installpkg ./* とします。
合計で以下の6つをダウンロードし、インストールしました。

appstream-glib-0.8.1-x86_64-1alien.txz
bubblewrap-0.8.0-x86_64-1alien.txz
flatpak-1.12.7-x86_64-2alien.txz
libostree-2022.6-x86_64-1alien.txz
xdg-dbus-proxy-0.1.4-x86_64-1alien.txz
xdg-desktop-portal-gtk-1.12.0-x86_64-1alien.txz

 その結果 flatpak が無事に動きました。この flatpak を使ったところ、vlc、brasero、evolution、libreoffice が全て無事にインストール出来て、動きました。
ただし、何度かやってみて libreoffice が日本語メニュー表示になったり、英語メニュー表示になったりしました。うちの環境だと Xfce では日本語メニューとなり、KDE では英語メニュー表示になるようです。KDE で日本語メニューに出来ませんでした。
flatpak 版の代わりに alien-bob の libreoffice を入れてみましたが、OS がハングアップしました、汗。
多分、Slackware は Xfce で使った方が良さそうです。

 flatpak パッケージに chromium もあったのでインストールを試みましたが、これはダメでした。alien-bob の flatpak もフルスペック対応ではないようです。
代わりに alien-bob の chromium が無事にインストールできて動きました。こっちのは調子良いです。






*google-chrome のインストール
 ずっと以前 rpm2tgz コマンドを使って変換して rpm 版の google-chrome を slackware に入れた記憶があります。なんとなく・・
今回、その時の記憶を頼りにやってみたら chrome が無事にインストールできて動きました。
やり方は単純です。google のサイトから rpm 版をダウンロードして rpm2txz で変換。
それを installpkg を使って入れるだけです。
そのままではメニューにアイコンが出てこないので、なにか google chrome らしいアイコンを適当な場所に入れると良いです。
アイコンを入れずにそのままだと下の画面みたいになります、笑。

slack-chrome

google-chrome のアイコンのところが真っ白になっています。取り敢えず正常に動きますが、笑。
ネット検索して google chrome icon とすると適当な png ファイルが出てくるのでこれをダウンロードして使えば簡単です。



*その他、プリンタ設定等は記述省略。普通に動かせます。




追加:2024-11
 Slackware でサーバ運転していて中で dovecot が動いているとします。それに対して LAN 内のデスクトップ機から evolution でメールポップする場合です。
evolution を使うとサーバの /var/log/syslog に以下のようなエラーメッセージが山の様に出ると思います、笑。
メッセージを出すのは gnome-keyring-daemon です。これは Slackware の pam 設定の bug らしいです。


couldn't create socket directory: /run/user/hoge/keyring-hoge2: Permission denied
couldn't bind to control socket: /run/user/hoge/keyring-hoge2/control: Permission denied


その場合は、以下の様に /etc/pam.d/ のファイルを修正します。

system-auth というファイル
-auth       optional      pam_gnome_keyring.so
-session     optional      pam_gnome_keyring.so auto_start
の二行をコメントアウト(#)

login というファイル
上記の二行を追記する

これで gnome-keyring のエラーは解消します。
ただし、この話はネットのQandAで見つけました。かなり古いヤツ。
それから相当の年数が経っていても slackware では pam の設定を変えていません。もしかしたら変えない方が良いとの判断があるかもしれません。
うちでは、この変更をやって調子良いですが、必ず全ての場合にこれが良いかどうか分かりません。ご承知おきください。







Sec-6.全般としての印象

 3つの視点で評価します。
   視点a. ・・・もともと Slackware の得意分野です。まったく問題無いです。
   視点b. ・・・ここも Slackware の得意分野です。まったく問題無いです。
   視点c. ・・・Alien-Bob の flatpak 等を使うことにより Slackware のイマイチな分野が多少改善されます。

 c. 系利用については、なんとか最低限の要求レベルに達したと思います。しかし、時間をかけて環境構築しても c. 系利用に関しては Debian、Ubuntu 等にはかないません。c. 系に関しては Arch、SUSE(leap) のレベルにも及びません。
a. b. は負けてないんですがね・・・
またサードパーティ製の flatpak 等を利用するのも、時期によってうまく行ったり、行かなかったりするだろうと思います。
2022、2023 年は Salix 版でうまくいきました。2024 年は Salix 版がダメで alien-bob 版がうまくいきました。やれやれ・・・、です。
しかしその都度探せば動くヤツがどこかにアップされているようなので、絶望的ってわけでも無いです。







以下、Slackware-current の古い記述です。ローリングリリースのやや困った点については、古い記述のままに残しています。

Sec-23.Salix-15.0 のパッケージを利用(slackware-current の話。Windows 代替のため)

 ここで書くことは「やれば Salix のバイナリーを動かすことが出来るけれど、結局長続きしそうにない」という話です。のっけから恐縮です。

 まず Salix-15 を入れたパソコンで Salix のパッケージをダウンロードします。確か・・・(笑)


# slapt-get -id hoge

とやればパッケージがダウンロード出来たと思います。正確には slapt-get --help で確認してください。パッケージは /var/slapt-get/salix/ というディレクトリの中に収まります。なのでこの要領で


sylpheed、evolution、vlc、libreoffice、brasero

等インストールしたいと思うものをダウンロードします。その後 /var/slapt-get/salix/ の salix ディレクトリを tar 玉で固めて slackwaer-current のマシンに持っていきます。どこでも良いから展開します。
このとき、一つだけ余分なパッケージがあるので削除します。多分展開した中に lua-5.1.5 とか、あると思います。current は lua-5.4.6 を持っているので不要です。消します。
消した後は各ディレクトリに入り # installpkg ./* とやるだけです。installpkg は依存性を関知しないのでどこから実行しても可です。

この後 ldd で確認すると sylpheed だけ so ファイルが足りません。これは salix から持ってきてインストールしますが、先にひと工夫します。
/lib64、/usr/lib64 の2つのディレクトリを /lib64.backup、/usr/lib64.backup 等(任意)の名前でコピーを作ります。
そして sylpheed のために salix から持ってきた不足分 so ファイルを backup 側にインストールします。
次に so ファイルのロードパスを書き込みます。書き込むのは /etc/ld.so.conf というファイルもしくは /etc/ld.so.conf.d/ ディレクトリの中に hoge.conf の名前で書きます。書く内容は以下のとおり。


/lib64.backup
/usr/lib64.backup

ld.so.conf ファイルの末尾に書き込めばロードする順は先に /lib64、/usr/lib64 を使い、不足していたら /lib64.backup、/usr/lib64.backup からロードします。
もしも /etc/ld.so.conf.d/ ディレクトリの中に書いたファイルを入れれば先に backup 側からロードし、不足している場合は正規のところからロードします。
とりあえずの作業はどっちでもオケです。私はシステム側(正規版)優先としました。
以上の作業の後は ldconfig して reboot します。

もう一度 ldd で sylpheed を確認すると大半の so ファイルは正規のところからロードしていて、さっき不足していた分だけ backup 側からロードしているのが分かります。
とりあえずの話ですが、入れた salix のパッケージはすべて無事に動きました。




この作業(ディレクトリのバックアップを作る)の本来の目的はローリングリリースが少しずつ so ファイルを更新していき、野良で入れたソフトが動かなくなることを防止するため。古い so ファイルをすべて残しておくためです。
こうするとバージョン番号が変化していく so ファイルの問題には対応出来ます。
しかし! よく見てみると事態はそんなに単純じゃない、笑。
/lib64 や /usr/lib64 の中を見ると分かりますが、たくさんシンボリックリンクが貼ってあります。例えば


/usr/lib64/hogehoge.so.23

なんてのがありますが、実態はシンボリックリンクで hogehoge.so.23.1.8 とかだったりします。これがそのうち hogehoge.so.23.1.14 とかに変わったりします。
こうやってシンボリックリンクを貼っておけば、古いパッケージが常に hogehogoe.so.23 を読むようにコンパイルされているとき、少しずつ更新しながら新しいファイルになるのに対応出来ます。古いパッケージをコンパイルし直さなくてもすむでしょう。
こんなふうにバージョンを上げていくとき、

固定リリースならセキュリティ対応やバグ対応で、同じメジャー番号である限り基本的にバイナリーコンパチのままです。

しかし

ローリングリリースは仕様が変わり微妙にバイナリーコンパチでなくなりつづけていきます。

そんなとき不具合の出る純正パッケージは、ローリングリリースならコンパイルし直して更新で流してくるでしょう。なのでローリングリリース系ディストリの純正パッケージは正常に動きます。
問題は自分が野良で入れたパッケージです。
自分が野良で入れたパッケージは古い hogehoge.so.23.1.8 が必要で hogehoge.so.23.1.14 だと誤作動するとします。この問題にどう対応できるかということです。
ライブラリを読む順を正規のあとに backup とすると自分が野良で入れたパッケージは hogehoge.so.23.1.14 を読んでしまうので誤作動します。
ライブラリを読む順を backup のあとに正規を読むようにすると自分が野良で入れたパッケージは正常に動くでしょう。しかし一部の current のパッケージが当然に誤作動します。
あっち立てればこっち立たずです。so ファイルを読む順は普通に考えればシステム優先、つまり正規を読んでから後で backup のところを読むべきでしょう。野良で入れたものが正常に動かなくなっても仕方ないです。

 2022 夏〜秋に Slackware-current に salix のパッケージや flatpak 版パッケージを導入して一年少々は無事でしたが、最近は slapt-get、flatpak 両コマンドがおかしいです。
このことは 2022 夏〜秋時点である程度想定していましたが、この晩秋になって現実を実感しました。あ・・・アカンって、笑。




Sec-24.全体としての印象

 印象というよりも ローリングリリース+野良コンパイル利用の結論です。
UNIX geek っぽくいじり回したいならローリングリリース系はやめたほうが無難です。
どうしても中をいじり回したいなら固定リリースモデルにすべきでしょう。









一つ前の版です。  https://www.quinos.net/topicv04/topicv04.02.html
二つ前の版です。  https://www.quinos.net/topicv04/topicv04.01.html