続・玩式草子 ―戯れせんとや生まれけん―

第40回 Plamo Linux 7.4と赤の女王仮説

この記事を読むのに必要な時間:およそ 3 分

なかなか収束しない新型コロナにロシアのウクライナ侵攻,それらに伴なう世界経済の混乱と物価の上昇等々,気が滅入めいるニュースばかりの日々が続く中でも季節は着実に歩みを進め,新緑を過ぎ,そろそろ田植えの時期になってきました。家の近くの苗代なわしろには田植えを待つ苗箱が並び,代掻しろかきが終った水田は鏡のような水面を光らせています。

ここ数年,筆者がとりまとめ役をしているPlamo Linuxの新バージョンは田植えで忙しくなる前にリリースすることにしており,今年も先月末に約1年ぶりとなるPlamo Linux 7.4をリリースしました。

もっとも最近では,get_pkginfoコマンドで更新したパッケージを随時入手できますし,今回もPlamo-7シリーズの「メンテナンス・リリース」ということもあって,特記すべき変更や何か目新しい機能が加わった,ということはないものの,この1年ほどの間におよそ半数のパッケージが更新されると共に,パッケージ管理ツールもzstdに対応するなど,着実に進歩は続いています。

一方,この記事は新規インストールしたPlamo-7.4上で書いていますが,Firefoxで情報収集しつつ,MateデスクトップにEmacsエディタ,日本語入力はSKK,と,十年以上前から変わらない,指に馴染なじんだツールを使い続けています。

このように「変わりつつも変わらない」ことがPlamo Linuxの特徴のひとつ,という気がしているので,今回はそのあたりを考えてみることにします。

Plamo Linux 7.4の特徴

前節では,Plamo Linux 7.4(Plamo-7.4)はPlamo-7シリーズのメンテナンス・リリースで特に目立った特徴はない,と述べたものの,それだけではちょっと寂しい(苦笑)ので,主要なパッケージやいくつか追加した機能について紹介しましょう。

4月末のリリースに合わせて付属のREADMEファイルを更新し,その際,記載した主要なパッケージのバージョン情報は以下のとおりです。

kernel : linux-5.15.35
GCC    : 11.3.0
LLVM   : 13.0.1
Emacs  : 28.1
Mesa3d : 21.3.7
Xfce   : 4.16
Mate   : 1.26
ICU    : 70.1
Firefox: 99.0
LibreOffice : 7.2.6
ffmpeg : 4.3.3
Python : 3.9.12
Glibc2 : 2.33

リリース後1ヵ月ほど経っているので,FTP上ではすでに更新されたパッケージもあるものの,多くのパッケージが2022年4月時点でほぼ最新かそれに準じたバージョンに更新できました。

一方,いくつか古いバージョンのまま留めているパッケージもあるので少し説明しておきましょう。Linuxカーネルは5.18が最新版(mainline)5.17系が安定版(stable)なものの,⁠安定版」の寿命は案外短かいので,デフォルトでインストールするカーネルはLTS(Long Term Support)版を採用することにしており,Plamo-7.4では最新のLTSである5.15系を採用しています。

7.3では1つ前のLTSである5.10系でした。

Pythonは2021年10月に3.10.0が公開され,開発は3.10系に移行したものの,関連するモジュール類を/usr/lib/python3.9/のようなマイナーバージョンまで含めたディレクトリに保存するため,移行するには3.9用のパッケージを全て作り直すと共に,3.9用のスクリプトが3.10で正しく動くかも確認する必要があるので,Python-3.10系の採用は先送りにし,Plamo-7.4は3.9系で行くことにしました。

動画や音声を扱うソフトウェアの多くが利用しているFFmpegも,4.4系やメジャーバージョンが更新された5.0系が公開されているものの,共有ライブラリやAPIの互換性の問題があるため,もうしばらくは4.3系に留め,FFmpegを利用しているソフトウェアが5.0対応を済ませてから更新することにしました。

FFmpegはバージョンアップごとにAPI/ABIが変更され,ライブラリの依存関係を調整するのが面倒でしたが,5.0系は古くなったAPIを廃止し新しい形式に統一した,とのことなので,今後はバージョン間の互換性問題も改善することを期待しています。

半年ごとにバージョンアップするGlibc2の最新版は2.35まで進んでいるものの,2021年8月に公開された2.34で内部構造が大きく変更され,libpthreadやlibdlと言った補助ライブラリの機能がlibc本体に取り込まるようになりました。Glibc2の開発者たちは「互換性に問題はない」と言っているものの,しばらく様子を見た方がいいだろう,ということでこの変更前のバージョンである2.33に留めています。

その他,READMEファイルには取りあげなかったパッケージについて紹介すると,Xorg-serverは21.1.3に更新し,それに合わせてX関連のライブラリやドライバも最新版に更新,あるいは再ビルドしています。

Xorg-serverの前のバージョンは1.20.10で,1から急に21まで飛ぶのか,と思ったものの,今後も変わりそうにないメジャーバージョン(1)を略し,マイナーバージョン(20)をメジャーバージョンに昇格させた結果のようです。

合わせて,Xwayland(xwayland-21.1.4)Weston(weston-10.0.0)も追加し,Xに代わる新しいウィンドウシステムであるWaylandも利用可能にしてみました。

システム起動用のgrubも2.06に更新し,新メンテナの阿部さん作の"Powered by Plamo Linux"な背景画像を利用するようにしています。ついでにインストーラの背景画像には,起動メディアを手動指定する必要がある場合の情報を書き込んでみました。

Plamo-7.4のインストーラ起動画面

Plamo-7.4のインストーラ起動画面

これらパッケージを管理するためのパッケージツールもpkgtools8に更新し,最近よく使われている圧縮ツールzstdにも対応しました。zstd形式で圧縮したパッケージの拡張子はtzstにしています。

zstdは圧縮率を1から19までの範囲(数字が大きいほど圧縮率が高い)で調整できます。どれくらいが適切かとあれこれ試した結果,パッケージ作成用コマンド(/sbin/makepkg)の設定は"10"としています。この場合,圧縮後のサイズはxzに比べて2~3割増しになるものの,圧縮にかかる時間はxzの半分以下で済むので,特に大きなパッケージを作成する際には便利です。

一方,tzst形式に変更してパッケージサイズがすこしずつ大きくなった結果,それらをまとめたisoイメージのサイズがDVDの容量を越えてしまうようになりました。そのため,従来は1枚目のDVDイメージplamo-7.4_x86_64-dvd_01.isoに含んでいたLibreOffice用パッケージを2枚目のDVDイメージplamo-7.4_x86_64-dvd_02.isoに移動し,WINE用の32ビット環境を含むcontrib以下はDVD用のisoイメージには含めないようにしました。また,contrib以下も含む「全部込み」のUSB用イメージplamo-7.4_x86_64-usb.isoは8.8GBほどになり,Plamo-7.3までは収まっていた8GBのUSBメモリに入らなくなりました。今までのUSBメモリを使い回せなくなるのは少し悩んだものの,最近では16GBのUSBメモリも1000円以下で買えるようなので,ヘタな小細工をろうする必要もないか,と判断しました。

手元では古いUSBメモリに1枚目のDVDイメージを書き込んでLibreOfficeとTeX以外をインストール,残りは必要に応じてネットワーク経由でダウンロード,みたいな使い方をしています。

findを使ってPlamo-7.4に含まれているパッケージを概観すると,総パッケージ数1009のうち7.3公開後の1年間に更新されたパッケージは408更新されたパッケージのうち新しいtzst形式のものが328,従来のtxz形式のものが80,という結果になりました。

互換性重視で進めてきたPlamo-7.xのシリーズはこのPlamo-7.4で終了とし,次は今回紹介したような「やや互換性に難あり」なパッケージ類を更新して,過去のしがらみを整理したPlamo-8.xシリーズの開発に移る予定です。

著者プロフィール

こじまみつひろ

Plamo Linuxとりまとめ役。もともとは人類学的にハッカー文化を研究しようとしていたものの,いつの間にかミイラ取りがミイラになってOSSの世界にどっぷりと漬かってしまいました。最近は田舎に隠棲して半農半自営な生活をしながらソフトウェアと戯れています。

URLhttp://www.linet.gr.jp/~kojima/Plamo/index.html