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

第53回近日公開 Plamo-5.2

12月に入るとあれこれ雑用も多くなり、あっと言う間に時間が経って、今年もあと一週間弱を残すのみとなりました。ここ数年、年末に合わせてPlamo Linuxの新版をリリースするのが恒例になっていて、今年も、ちょうど今、Plamo Linux 5.2のリリース前の追い込み作業にかかっています。

Plamo-5.2はバージョン番号が示すように、Plamo Linux 5.x系の2度目のメンテナンスリリースです。Plamo-5.1のリリースは5月末でしたので、そこから約半年の間に加えられた変更をまとめています。もっとも、5.0から5.1への更新は比較的小規模だったのに対し、5.1から5.2へは、X Window System回りの入れ替えを含む、かなり大規模な更新となりました。今回は、リリース間近のPlamo-5.2について簡単に紹介してみましょう。

Plamo-5.2の特徴

カーネル

Plamo-5.2ではLinux 3.12.5に、コンソールで日本語を出すためのuniconパッチ、ファイルシステムを重ね合わせてマウントできるaufsパッチ、サスペンド/ハイバネート機能を強化するTuxOnIceパッチなどを適用して採用しています。

$ uname -a
Linux corei3 3.12.5-plamo64 #1 SMP PREEMPT Wed Dec 18 02:26:07 JST 2013 x86_64 GNU/Linux

最近のLinuxでは、長期間メンテナンスされるlongtermカーネル(最近では3.10の系列)と、2度ほどバージョンアップが進めばメンテナンスが終了する通常版カーネルの2種があります。Plamo-5.2で採用した3.12系列のカーネルは通常版カーネルなので、3.14の系列がリリースされるとメンテナンスが終了することになります。

longtermカーネルを使うか通常版カーネルを使うかは悩ましいところですが、後述する「仮想化」に関連した新機能などは、まず通常版カーネルに取りこまれ、ある程度洗練された上でlongtermカーネルに移植される形になるので、Plamo Linuxでは、寿命はあまり長くないものの、新しい機能をあれこれ試せる通常版カーネルを採用しています。

X Window System

Plamo-5.2では、X Window Systemを全面的に更新し、Xorgサーバは1.14.2を採用しています。合わせて、前回までの記事で紹介したように、3Dアクセラレーション機能を担当するMesaLibも9.2.3に更新し、RADEON系のグラフィックカードではLLVMをバックエンドに持つ、Gallium3Dフレームワークを採用したドライバが動作するようになりました。

PC用のグラフィックカードの分野では、かってはATIやMatrox、Cirrus Logicなど多数のメーカーが群雄割拠していましたが、最近ではAMD、NVIDIA、Intelの3社にほぼ収束してきました。それに伴ない、XやMesaLibでもこれら3社のグラフィックカード用のドライバは活発に開発されているものの、それら以外のドライバでは開発が停滞、終了するものが増えてきました。

手元でも、AMD RADEONとIntelのCPU統合型ビデオチップ、VirtualBox等の仮想環境で利用するVESAの3種のドライバは実際に使っているものの、これら以外のドライバはテストできていません。古い世代のグラフィックカードを利用中の方がいれば、ぜひ動作テストをしてみてください。

MATEデスクトップ環境

無理やりメンテナに巻き込んだ(苦笑⁠⁠、植竹さんのご尽力で、以前この連載でも紹介したMATEデスクトップ環境が、1つのカテゴリとしてインストール時に選択できるようになりました。

図1 インストーラのパッケージ選択画面
図1 インストーラのパッケージ選択画面

MATEは、GNOMEプロジェクトが放棄したGNOME2のコードを元に開発されたデスクトップ環境で、ユーザインターフェイスの設計思想から大きく変ったGNOME3とは異なり、GNOME2当時のルック&フィールを保ちつつ、現在のデスクトップ環境に標準的なDBusやudisk等の技術にも対応しています。

図2 MATEデスクトップ環境
図2 MATEデスクトップ環境

GNOME2当時のシンプルな操作性やルック&フィールを懐かしく思う人には、MATEデスクトップ環境はいい選択肢になることでしょう。

KDEデスクトップ環境

比較的小規模にまとまっているXfceやMATEとは異なり、多数のアプリケーションを同梱した大規模なデスクトップ環境であるKDEもPlamo Linuxには含まれており、Plamo-5.2ではKDE-4.11.3を採用しています。

XfceやMATEでは、自前で開発するのはファイルマネージャやテキストエディタといった基幹的なソフトウェアに限定しているの対し、KDEではメーラ(KMail)やWebブラウザ(Konqueror⁠⁠、フィードリーダ(Akregator)などに加え、天体観測や数式処理、化学計算といったアプリケーションソフトウェアを多数開発しており、さながらソフトウェアの展覧会のような様を呈しています。

図3 KDEデスクトップ環境
図3 KDEデスクトップ環境

Plamo-5.1で採用していたKDE-4.9.5ではパッケージ数は147だったのに対し、KDE-4.11.3ではパッケージ数は214にまで増えています。もっとも、これらの中には4.9.5当時は1つのパッケージにまとめられていたkdegamesが、それぞれのゲームごとに分割されて増加した分なども含まれているので、実際に増えたソフトウェアの数はそれほど多くはなさそうです。

Plamo-5.2を全てインストールすると、Xfce、MATE、KDEの3種のデスクトップ環境が利用できるようになります。どのデスクトップ環境を利用するかはadduserコマンドで新規ユーザを登録する際に指定できますし、ユーザのホームディレクトリにある.xinitrcファイルを修正することで随時変更することが可能です。

仮想化機能

最近、開発が急速に進展している仮想化技術関連のパッケージを contrib/Virtualization/以下に収録しました。これらのパッケージをインストールすると、Plamo Linux上でも簡単に仮想化技術を試してみることができます。

特にLXC(LinuX Container)と呼ばれるコンテナタイプの仮想化ツールは、Plamo Linuxメンテナの加藤さんがLXCの開発にも参加されていることもあって、あらかじめPlamo用のテンプレートが用意されており、簡単に最新のPlamo Linux環境のコンテナを構築することができます。

# lxc-create --name plamo-container -t plamo
Checking cache download in /var/cache/lxc/cache-plamo-5.x-x86...
Downloading Plamo-5.x minimal...
Download complete.
Installing packages to /var/cache/lxc/rootfs-plamo-5.x-x86...
aaa_base-5.0-noarch-P2 のインストール中 
PACKAGE DESCRIPTION:
aaa_base-5.0-noarch-P2 のインストールスクリプトを実行中

acl-2.2.51-i586-P1 のインストール中 
PACKAGE DESCRIPTION:
acl-2.2.51-i586-P1 のインストールスクリプトを実行中
...

Copy /var/cache/lxc/rootfs-plamo-5.x-x86 to /var/lib/lxc/plamo-container/rootfs...
Copying /var/cache/lxc/rootfs-plamo-5.x-x86 to /var/lib/lxc/plamo-container/rootfs...
patching file /var/lib/lxc/plamo-container/rootfs/etc/inittab
Setting root password to 'root'...
Please change root password!

コンテナ環境を構築するlxc-createは、必要なパッケージをインターネット経由でダウンロードするため、実行には多少時間がかかるものの、常に最新のパッケージを利用することができます。作成したコンテナ環境はlxc-startコマンドで起動します。

# lxc-start -n plamo-container
INIT: version 2.88 booting
mknod: '/dev/null': File exists
mount: can't find / in /etc/fstab
mount: none mounted on /proc.
..
Welcome to Linux 3.12.5-plamoSMP.

plamo-container login: root
Password: 
Last login: Wed Dec 25 11:28:21 JST 2013 on console
root@plamo-container:~# ps axw
 PID TTY      STAT   TIME COMMAND
   1 ?        Ss     0:00 init [3]
  15 ?        Sl     0:00 /sbin/rsyslogd -m 0 -f /bootlog.conf
  71 console  Ss     0:00 /bin/login --
  72 tty1     Ss+    0:00 /sbin/agetty 38400 tty1 linux
  73 tty2     Ss+    0:00 /sbin/agetty 38400 tty2 linux
  74 tty3     Ss+    0:00 /sbin/agetty 38400 tty3 linux
  75 tty4     Ss+    0:00 /sbin/agetty 38400 tty4 linux
  76 console  S      0:00 -bash
  87 console  R+     0:00 ps axw

このようにコンテナ環境はホストとは隔離され、複数のコンテナ環境を1つのホスト内で運用することができます。

Plamo用のコンテナにはPlamo Linuxの基本環境を構成する00_baseと01_minimumの両カテゴリのパッケージがあらかじめインストールされているので、特定用途向けの仮想サーバを構築することは容易でしょう。

# ls /var/log/packages/
FDclone       etc               less           mlocate          screen
aaa_base      ethtool           libassuan      mpc              sed
acl           expect            libc           mpfr             setserial
...
eject         kmod              microcode_ctl  ruby

contrib/Virtualizaion/以下には、こうやって作った仮想環境をGUI経由で管理するためのvirt-managerパッケージも含まれているので、仮想環境をあれこれ試してみたい人には便利です。

USBメモリからのインストール

最近では、DVDドライブを持たないミニサイズPCなども増えてきたので、インストール用DVDイメージにisohybrid処理を加えて、USBメモリからも起動、インストールできるようにしてみました。

この機能を使うためには、DVDイメージをUSBメモリへ「コピー」するのではなく、dd等のコマンドを使って「直書き」する必要があります。たとえば、USBメモリが/dev/sdd1として認識されている場合、以下のようなコマンドでDVDイメージをUSBメモリに書き出します。書き込み先が/dev/sddで、USBメモリ全体を指定していることに注意してください。

# dd if=plamo-5.2b2_x86_64-2013-12-19_dvd.iso of=/dev/sdd bs=100M

ddコマンドの書き込み先(of=...)にUSBメモリ全体(/dev/sdd)を指定することで、USBメモリの先頭からデータが書き込まれ、isohybridが追加した起動用コードがHDDのMBRのように使われて、USBメモリが起動メディアとして利用できるようになります。

このUSBメモリからPlamo Linuxをインストールする場合、⁠インストール元の選択」としてハードディスクパーティションを選び、⁠パーティションの指定」として/dev/sdd1⁠インストール元ディレクトリ」としてplamoを指定することになります。

図4 USBメモリをHDDパーティションとして指定
図4 USBメモリをHDDパーティションとして指定

これはややトリッキーな指定に思えるかも知れません。DVDイメージを先頭から書き込まれたUSBメモリは、⁠iso9660ファイルシステムを最初のパーティションに持つHDDドライブ」と認識されるため、このような指定になります。

なお、インストールに使ったUSBメモリは読み込み専用のファイルシステムが書き込まれているので、空き容量があるはずでも、そのままでは追記したりファイルを書き替えることはできません。普通のUSBメモリに戻すためには、再フォーマットして初期化してやる必要があります。

既知の問題点

Plamo-5.2では、上記のような特徴が追加された一方で、収録しているソフトウェアのバージョンアップに伴なって、新しい問題もいくつか発生しています。

NFSv4の認証問題

NFSの新しいバージョン、NFSv4では、NFSv3までのようなローカルネットワークだけではなく、インターネット経由でも利用できるように、認証や暗号化機能が強化され、デフォルトではKerberosを用いてクライアントを認証するようになっています。

一方、Plamo Linuxではライブラリなどを必要とするソフトウェアがあったので、HeimdalというKerberosの実装を採用してはいるものの、今まで積極的に使う機会はなく、設定等の詳細は放置したままでした。

その結果、オプション等を指定せずにNFSマウントしようとすると、まずNFSv4のKerberos認証が試され、タイムアウトするまでの15秒ほど待たされることになります。

NFSv4でマウントしなくてもいい場合は、マウント時に-o nfsvers=3を指定して、NFSv3でマウントするようにすればこのタイムアウト待ちは発生しません。/etc/fstabに記載して、起動時に自動マウントする場合は、このオプションをオプションフィールドで指定してください。

# cat /etc/fstab 
/dev/sdc3       swap        swap        defaults   0   0
/dev/sdc2       /        ext4        defaults   1   1
/dev/sr0       /cdrom   iso9660   user,ro,noauto,exec,iocharset=euc-jp 0   0
...
192.168.1.10:/raid  /raid  nfs rw,nfsvers=3,soft  0  0
192.168.1.10:/mnt  /nfs  nfs rw,nfsvers=3,soft  0  0
192.168.1.6:/share/Srcs  /share/Srcs nfs rw,nfsvers=3,soft  0  0

なお、必要な設定をせずにKerberos認証用のrpc.gssdデーモンを起動していると、Kerberos認証を求められた際にカーネル・パニック(kernel oops)を引き起すことがあるので、Plamo-5.2で採用しているnfs-utilsパッケージでは、--disable-gssを指定してrpc.gssd, rpc.svcgssdをビルドしないようにしています。Plamo-5.2環境でKerberos経由のNFSv4を試してみたい人がいれば、まずこれらのデーモンをビルドしてからお試しください。

文字コード(locale)がらみの諸問題

最近では、国際化も普及してファイルシステム上の文字コードに関わる問題は少なくなってきていたのですが、メディアプレイヤーVLCの新しいバージョン(2.1)では、従来あった非UTF-8なファイル名を読む機能が破棄されて、EUC-JPな日本語ファイル名が読めなくなってしまいました。

ファイルを読み込む際に、localeに合わせた文字コードでファイルを読み込んでから、ファイル名をUTF-8に変換すれば解決するレベルの問題のように思ってはいるものの、他のメディアプレイヤーでは問題なくEUC-JPなファイル名も読めるので、あえてVLCにこだわる必要もないかと思って、VLCと関連パッケージは plamo/05_ext/以下からcontrib/VLC/以下へ移動して、デフォルトではインストールしないようにしました。VLCに愛着があって、ぜひPlamo上でも動かしたい、という人がいらっしゃれば、このあたりのデバッグをお願いします。

同様の問題はLibreOfficeでも発生しています。LibreOfficeの場合、EUC-JPなファイル名を読み書きすることは問題ないものの、EUC-JPなファイル名をプリンタに送ることは拒否するようで、ファイル名に日本語を含むファイルを印刷することができません。

こちらも、CUPSに投げる前にファイル名をEUC-JPからUTF-8に変換すれば解決するレベルの問題とは思っているものの、LibreOfficeは自前でビルドしているわけではなく、公式のrpmパッケージをPlamo用のtxzパッケージに変換してごまかしているので、ソースコードレベルではチェックできていません。⁠我こそは」と思う人がいらっしゃれば、ぜひご協力をお願いします。


以上、駆け足でPlamo-5.2について紹介してみました。最初にも紹介したように、Plamo-5.2は本稿執筆時点ではβ2を広くテストしてもらっている段階で、正式リリースの一歩手前、というところです。今回紹介した各種機能が大きく変ることは無いとは思いますが、本稿は開発版を元にしていることをご了承ください。

Plamo-5.2は年内、できるだけ早めに公開したいと思っています。自動化が進みすぎて中身がよく分からなくなった最近のディストリビューションに飽きたらない方は、年末年始の休暇にぜひ試してみてください。

おすすめ記事

記事・ニュース一覧