玩式草子─ソフトウェアとたわむれる日々

第41回Plamo Linux-5.0

子供のころの一年はずいぶん長かった記憶がありますが、大人になると、日々の雑事に追われているうちにあっと言う間に月日が過ぎ、一年をずいぶん短く感じるようになりました。

64ビット版のパッケージを先行リリースしたPlamo64-1.0から丸一年、昨年末になってようやく32ビット(x86⁠⁠、64ビット(x86_64)の両アーキテクチャに対応したPlamo-5.0をリリースすることができました。Plamo-5.0はマルチアーキテクチャに対応した初めてのPlamo Linuxで、2004年6月にリリースしたPlamo-4.0から8年半ぶりにメジャーバージョンが上がったことになります。

そんなに経ってたのか…、と思ってPlamo-4.0当時の更新履歴を眺めてみると、当時のデフォルトのカーネルは2.4.26(contribに2.6.7⁠⁠、GCCは3.3.2、glibcは2.3.2、XはXFree86-4.4.0、ブラウザはmozilla-1.7.1を採用していたようです。

もちろん、Plamo Linuxも8年間立ち止まっていたわけではなく、年に1、2度のマイナーバージョンアップを繰り返しながら、これらソフトウェアの新版に追従してきたわけですが、この8年の間にLinuxに関連する環境や技術がどれくらい進化したか、そのために世界中でどれだけの開発者が貢献してきたのかを考えると、改めて目がくらみそうな思いがします。

今回リリースしたPlamo-5.0は、昨年先行してリリースしたPlamo64-1.0を元に、32ビット版のパッケージを追従するような形で開発を進めたこともあって、機能や特徴的にはそう目新しさは感じないものの、こうして積み重ねてきた時間を考えると感慨深いものがあります。

今回は新しい年の初めでもありますし、このPlamo-5.0の特徴を紹介しつつ、今後の展望を語ってみましょう。

Plamo-5.0の特徴

前述のように、Plamo-5.0は2011年末にリリースしたx86_64用のPlamo64-1.0に32ビット版のパッケージを追従させた形なので、主な特徴は以前紹介したPlamo64-1.0と大きく異なるものではありません。しかしこの1年ほどの間に64ビット版のパッケージのバージョンも更新が進んでいるので、改めて主要なソフトウェアについて紹介しておきましょう。

カーネル 3.7.1

LinuxカーネルはPlamo-5.0リリース時点での最新の安定版である3.7.1を採用しました。最近では、一般ユーザ向けの機能はほぼ完成しているので、⁠最新版のカーネル」といっても機能的に大きな差はありませんが、新しいハードウェアのサポートは最新のカーネルにまず入りますし、3.7系以前のカーネルはメンテナンス終了(EOL:End Of Life)が宣言されているので、最新版に追従し続けていく以外の選択肢は無さそうです。

カーネルには、従来同様、コンソールに日本語を表示するためのuniconパッチやファイルシステムを重ね合わせるaufsパッチなどを適用しています。

$ uname -a
Linux vm32 3.7.1-plamoSMP #1 SMP PREEMPT Wed Dec 19 21:29:27 JST 2012 i686 GNU/Linux

コンソールを日本語化するためのuniconパッチは、シェルスクリプトで書かれたインストーラを使っているPlamo Linuxにとって最も重要な機能の一つですが、最近では開発者によるメンテナンスも終了しており、将来のカーネルへの対応には不安なところもあります。カーネルのコンソール回りのコードがuniconパッチが当たらない程変ってしまった場合にどうするか、そろそろ検討しておいた方がいいかも知れません。

Btrfs対応

インストール時にBtrfsをルートファイルシステムに利用することが可能になりました。

図1 インストーラのファイルシステム選択画面
図1 インストーラのファイルシステム選択画面

Btrfsには面白そうな機能がいくつもあるものの、手元では試用中の1.5TBのファイルシステムが完全に崩壊したこともあり、まだまだExt系のファイルシステムほどには安定していないようです。Btrfsを試す場合は重要なデータのバックアップをお忘れなく。

Btrfs以外では、Ext4/3/2がルートファイルシステムに利用可能です。ReiserfsJFSXFSはモジュールとして用意しているので、ルートファイルシステムとしては使えませんが、既存のファイルシステムをマウントすることは可能です。

X11R77

X Window Systemは2012年夏にリリースされたX11R77を採用しています。xorg-serverは1.12.4になり、ビデオカード等の認識機能も強化されて、たいていの環境では設定ファイルである/etc/X11/xorg.confを用意しなくても動作するでしょう。

$ head /var/log/Xorg.0.log 
[   162.715] 
X.Org X Server 1.12.4
Release Date: 2012-08-27
[   162.722] X Protocol Version 11, Revision 0
[   162.725] Build Operating System: Linux 3.1.5-plamoSMP i686 
[   162.729] Current Operating System: Linux vm32 3.7.1-plamoSMP #1 SMP PREEMPT Wed Dec 19 21:29:27 JST 2012 i686
[   162.731] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.7.1-plamoSMP root=/dev/sdb1 ro vga16 unicon=eucjp vt.default_utf8=0 panic_output=7
[   162.741] Build Date: 30 August 2012  01:53:16PM
[   162.742]  
[   162.744] Current version of pixman: 0.26.2

かつてのX Window Systemは、プロトコルの定義ファイルからライブラリ、Xサーバ、各種アプリケーションまでがひとつのソースツリーにまとめて公開され、"make World"のコマンド1つですべてのソフトウェアをビルドするようになっていました。

しかし、X11R7以降は、ソースコードが各パーツごとに分割され、それぞれが1つのソフトウェアプロジェクトとして独立に開発されるようになりました。その結果、X Window Systemとしての「リリース」の意味は以前に比べて弱くなり、X11R77はX Window Systemの「公式リリース」としては最新ではあるものの、独立に開発が進んでいるビデオカードのドライバの中には、すでにかなり重要な更新が入った新バージョンに更新されているものがあるようです。Plamo-5.0環境で動作しないビデオカードが報告されれば、随時、新ドライバに更新していく予定です。

glibc-2.16

標準Cライブラリをeglibc-2.13からglibc-2.16に変更しました。

一時期、glibcのバグ修正や組み込み向けCPUへの対応が順調でなかったことがあり、それらに熱心なeglibcに乗り替えていましたが、glibcの開発体制も一新したようなので、再度glibcの系統に戻しました。もっとも、eglibcはglibcとバイナリ互換になっているので、eglibc-2.13を使うようにビルドされたバイナリファイルもglibc-2.16で問題なく動作します。

なお、最近のglibcではIPv6に対応していなかったRPC関連の機能が削除され、それらはlibtirpcという独立したライブラリで対応するようになっています。最近のソフトウェアはlibtirpcを参照しますが、libtirpcを知らない古いソフトウェアもあるため、RPC関連のヘッダファイルのみはglibcの一部として提供しているのでご注意ください。

最近のソフトウェアはpkg-configの機能を用いてlibtirpcを正しく参照できますが、glibcのRPCヘッダーを見る古いソフトウェアではMakefile等を修正してlibtirpcを明示的にリンクしてやる必要があります。

grub-2.00/lilo-23.2

カーネルをロードするためのブートローダも新しくしました。grub-2.00は広く使われていたgrub legacy(grub-0.97)を完全に書き直した新しいgrubで、機能が細かくモジュール化されており、ブロックを積み重ねるように必要な機能のみを追加していくことが可能になっています。その反面、従来のgrub legacyとは非互換になっているので、設定ファイルを使い回すことはできません。もっとも、そのような違いはセットアップ用スクリプトで吸収するようにしてみたので、インストール時の操作では特に違いを意識する必要はないでしょう。

一方、lilo-23.2はlilo-22系ではブートできなくなっていたlinux-3.xをブートする機能を追加したバージョンで、その他の機能は従来のlilo-22系と同じ、設定ファイルも流用可能です。

デスクトップ環境

最近のデスクトップ環境からはXfce-4.10KDE-4.9.2を採用しました。

図2 Xfce-4.10
図2 Xfce-4.10

コンパクトにまとまっているXfceに対して、KDEは規模もアプリケーションの種類も膨大で、チェックがきちんと行えていないソフトウェアが散在しています。手元で気づいた問題点はトラブル情報のページで紹介していますが、新しいトラブルを見つけた方はぜひ情報をお寄せください。

もうひとつの有力デスクトップ環境であるGNOME3系はメンテナの人手不足もあって採用できませんでした。我こそは、という人がいらっしゃれば、ぜひ協力をお願いします。

一方、Afterstep、Qvwmといった「ウィンドウマネージャ」もバージョンアップしたライブラリに合わせてビルドし直して、現役で活躍しています。

図3 Afterstep on Plamo-5.0
図3 Afterstep on Plamo-5.0

GNU Emacs-24.2

GNU Emacsは最新の24.2を採用しました。最近のEmacsでは、GTK3系のライブラリを利用して、ファイル操作などもGTKベースのアプリと同じスタイルで操作できるようになっています。

図4 GNU Emacs 24.2
図4 GNU Emacs 24.2

その反面、GTK3のライブラリにリンクしているため、XやGTK3のライブラリが無い環境では起動できなくなっています。ルータやファイアウォールなど、最低限の環境しかインストールしない場合は、その環境に合わせた再ビルドが必要になるでしょう。

たいていのDVDは再生不能に

2012年10月から施行された著作権法の改悪で、たいていの商用DVDが採用している暗号化機能(CSS:Contents Scramble System)をLinux等から解除して視聴することが違法となりました。

そのため、Linux用の暗号解除機能ライブラリ(libdvdcss)はビルドスクリプトのみを収めたダミーパッケージに変更し、mplayerやvlcといったメディアプレイヤーはlibdvdcssを利用しないように指定してパッケージ化したため、たいていの商用DVDは視聴できなくなってしまいました。

非常に不本意なdegradeですが、内容が暗号化されている商用DVDをPlamo Linux上で視聴したい方は、libdvdcssやmplayerの再ビルドをお願いします。

インストールに必要なHDD容量

32ビット版のパッケージをext4形式のパーティションにインストールする際に必要な容量はほぼ以下の通りとなりました。MB単位の数字が各カテゴリーが占めるサイズで、括弧内のGB単位の数字が累積で必要になるサイズです。

00_base         425MB
01_minimum      910MB(1.3GB)
02_x11          300MB(1.6GB)
03_xclassics    100MB(1.7GB)
04_xapps        1200MB(2.9GB)
05_ext          1900MB(4.8GB)
06_xfce         100MB(4.9GB)
07_kde          1500MB(6.4GB)
08_tex          2000MB(8.4GB)
09_kernel       500MB(8.9GB)
10_lof          500MB(9.4GB)

この結果を見ると、ルータやファイルサーバのような限定用途向けで500MB程度、CやRuby、Pythonなどが使えるCUIの開発環境で1GB、ウェブブラウザ(firefox)やメールクライアント(thunderbird),メディアプレイヤー(mplayer/vlc⁠⁠、画像編集(gimp/inkscape)等の機能を揃えたXfceデスクトップ環境で5GBぐらいの容量が必要になるようです。なお、これは32ビット版でのサイズで、バイナリのサイズが1~2割増加する64ビット版では、必要な容量もそれに応じて増加するはずです。

最近のTBクラスのHDDならばそれほど気にならないサイズだとは思いますが、古めのHDDを使い回している環境の場合は容量オーバーに注意が必要でしょう。

今後の課題と展望

以上、Plamo-5.0の特徴をざっと紹介してみました。最初にも述べたように、今回のリリースは32ビット版のパッケージを64ビット版のバージョンに追従させることが主目的だったので、機能やパッケージ的に特筆すべき変更はありません。

しかしながら、長く放置されていた32ビット版パッケージを更新する過程で、古いままだったビルドスクリプトを現状のスタイルに更新し、ほとんどのパッケージで1つのビルドスクリプトから32ビット版と64ビット版の双方を作れるようになったのは、今後のメンテナンスにとっての朗報と言えるでしょう。

今回は既存パッケージの整理を優先したため、システムの基盤に関わるような新機能の追加はできませんでした。ネットワーク設定回りのwicdkvmなどの仮想化機能、高速起動のためのupstartsystemdといった最近のLinuxディストリビューションで広く採用されている機能に追従することは次期バージョンでの課題のひとつです。

一方、無制限にパッケージを増やしてきたため、Plamo-5.0では32ビット用、64ビット用それぞれのパッケージ数が1194に達し、フルインストールするにはHDD上で10GB程度の容量が必要になってきたことも悩みの種です。現在のメンテナの規模では、ビルドスクリプトが整理できたとしても、これだけの数のパッケージを32ビット版、64ビット版それぞれにメンテナンスし続けることは困難でしょう。

新しいメンテナを積極的にリクルートしてメンテナの規模を大きくするのが正しい道とは思うものの、Plamo Linuxのようなニッチなディストリビューションでは新しいメンテナはなかなか見つかりません。そのため、いかに使い易さを損わずにパッケージを厳選してメンテナの負担を減らすかも大きな課題となりそうです。

おすすめ記事

記事・ニュース一覧