前回 紹介したPlamo Linux 5.2は、無事12月中に公開でき、清々しい気持ちで2014年を迎えることができました。しかしながら、積み残した作業もあります。Plamo-5.2はメンテナンス・リリースという位置づけなので、変更したパッケージを整理して、5.1からのアップデートを可能にしなければなりません。新年最初の作業は、このアップデート集作りになりました。今回は、この作業のついでに調べたPlamo Linuxの更新状況を紹介しましょう。
更新したパッケージの抽出
パッケージの更新履歴はChange.Logに記載されてはいるものの、それを見ながら一件ごと選り分けるのは大変です。そこで、単純に、Plamo-5.1のDVDイメージの作成時刻よりも更新時刻が新しいパッケージ を抽出することにしました。
Plamo Linuxの一次配布元はplamo.linet.gr.jpというサイトです。このサイトは筆者宅のサーバ内にあるものの、インターネットに公開していますし、メンテナの人たちもログインして随時パッケージを更新してくれるので、作業用には使えません。そのため、手元では、このサイトで公開しているディレクトリをrsyncで別マシンにコピーして、そこをDVD作成等に使う作業用領域にしています。
rsyncの作業は手動で行なっているので、すでにplamo.linet.gr.jpにはPlamo-5.2リリース以降の新しいパッケージ も登録されているものの、手元の作業用領域はPlamo-5.2リリース時の状態を保っています。都合のいいことに、この領域には以前に作ったPlamo-5.1のDVDイメージも残っているので、さっそくfindコマンドを使ってDVDイメージよりも新しいファイルを探してみました。
$ find Plamo-5.x/x86/plamo -cnewer plamo-5.1_x86_2013-05-22_dvd.iso
Plamo-5.x/x86/plamo
Plamo-5.x/x86/plamo/00_base
Plamo-5.x/x86/plamo/00_base/kernel-3.12.5_plamoSMP-i586-P1.txz
Plamo-5.x/x86/plamo/00_base/aaa_base-5.0-noarch-P2.txz
...
おっと、単純に検索先のディレクトリ(Plamo-5.x/x86/plamo)を指定するだけでは、パッケージだけではなく、ディレクトリなども引っかかってしまいます。より検索条件を限定するために「ファイル(-type f)」で「ファイル名の末尾がtxz(-name "*txz") 」という条件を追加してみます。
$ find Plamo-5.x/x86/plamo -type f -a -name "*txz" -cnewer plamo-5.1_x86_2013-05-22_dvd.iso
Plamo-5.x/x86/plamo/00_base/kernel-3.12.5_plamoSMP-i586-P1.txz
Plamo-5.x/x86/plamo/00_base/aaa_base-5.0-noarch-P2.txz
Plamo-5.x/x86/plamo/00_base/acl-2.2.51-i586-P1.txz
Plamo-5.x/x86/plamo/00_base/at-3.1.13-i586-P1.txz
...
今度はパッケージだけが選ばれたようですが、よく見ると最近更新した記憶がないパッケージも引っかかっています。あれれ、と思って更新日時を比較してみると、明らかにDVDイメージよりも古いパッケージも抽出されてしまっています。
$ ls -lh plamo-5.1_x86_2013-05-22_dvd.iso Plamo-5.x/x86/plamo/00_base/at-3.1.13-i586-P1.txz
-rw-rw-r-- 1 kojima users 44K 2月 6日 2012年 Plamo-5.x/x86/plamo/00_base/at-3.1.13-i586-P1.txz
-rw-r--r-- 1 root root 3.3G 5月 22日 2013年 plamo-5.1_x86_2013-05-22_dvd.iso
rsyncで同期した日時じゃ比較できないんだっけ? …としばし首を捻りましたが、改めてfindのmanページを調べ直すと、"-cnewer"の指定は「ファイルステータスが変更されたファイル を見つける」のに対し、「 修正されたファイル を見つける」のは"-newer"でした。
UNIX/Linuxのファイルには、最終アクセス時刻を記録するatime と最終変更時刻を記録するmtime 、最終ステータス変更時刻を記録するctime の3つの時刻が記録されていて、rsyncで同期した場合、mtimeは元のファイルに合わせるものの、ctimeは更新されます。ctimeは"change time"のはずですが、つい"create time"と思い込み、findの指定では両者をよく混同してしまいます。
改めて "-newer"で指定すると共に、該当するパッケージの日付も合わせて表示させてみました。今度は確かにPlamo-5.1のDVDイメージよりも新しいパッケージのみが抽出できているようです。
$ find Plamo-5.x/x86/plamo -type f -a -name "*txz" -newer plamo-5.1_x86_2013-05-22_dvd.iso -exec ls -lh {} \;
-rw-rw-r-- 1 kojima users 17M 12月 18日 01:07 Plamo-5.x/x86/plamo/00_base/kernel-3.12.5_plamoSMP-i586-P1.txz
-rw-rw-r-- 1 kojima users 6.6K 11月 15日 09:21 Plamo-5.x/x86/plamo/00_base/aaa_base-5.0-noarch-P2.txz
-rw-rw-r-- 1 kojima users 70K 11月 21日 14:09 Plamo-5.x/x86/plamo/00_base/bzip2-1.0.6-i586-P3.txz
-rw-rw-r-- 1 kojima users 1.3M 10月 16日 22:02 Plamo-5.x/x86/plamo/00_base/dhcp-4.2.5_P1-i586-P2.txz
-rw-rw-r-- 1 kojima users 295K 11月 23日 15:55 Plamo-5.x/x86/plamo/00_base/etc-5.0-noarch-P21.txz
...
さて、それではPlamo-5.1から5.2の間に更新したパッケージはどれくらいあるのでしょうか? findで見つけた結果を数えてみました。
$ find Plamo-5.x/x86/plamo -type f -a -name "*txz" -newer plamo-5.1_x86_2013-05-22_dvd.iso | wc -l
463
32ビット版のパッケージだけでも463個 が更新されているようです。この数字は全体の何割くらいになるのだろうか、と思って、パッケージの総数を数えてみると1331個 でした。
$ find Plamo-5.x/x86/plamo -type f -a -name "*txz" | wc -l
1331
Plamo-5.1を出したのが5月22日、5.2を出したのが12月27日ですから、約7ヵ月の間に全体の35パーセントものパッケージが更新されたことになります。
この割合は「メンテナンスリリース」の割には多すぎる気がします。しかし、もう少し詳しく見ると、Plamo-5.2ではX Window System回り(関連パッケージ87個)やKDE回り(178個) 、LibreOffice回り(61個)をバージョンアップし、Mateデスクトップ環境を追加(同24個)しています。
これらの更新に関連するパッケージは350個 あり、それらを除くと更新したパッケージは113個 、全体との比率では8.5% ぐらいとなります。すなわち、Plamo-5.1から5.2へのアップデートは「大きな更新4件とそれ以外の更新が全体の1割弱」と考えるのがよさそうです。
さて、それでは大きな更新以外に、この7ヵ月の間にどのようなパッケージが更新されたのでしょうか? アップデート集を作るついでにもう少し詳しくパッケージを眺めてみることにしました。
更新したパッケージの概要
前節の方法を使ってPlamo-5.1から5.2の間で更新されたパッケージを抽出し、各カテゴリごとにまとめると共に、Plamo-5.1で採用していたバージョンも併記して、バージョン等がどれくらい変ったかを整理してみました。
00_base
このカテゴリはLinux環境を構築するための必須パッケージ を収めています。更新されたパッケージは21個で、ソフトウェアのバージョンが上がったものが9つ、設定等を調整してビルドし直したものが11、新たに追加したものが1つでした。
表1 Plamo-5.1→5.2で更新されたパッケージ一覧(00_base)
Plamo-5.1 のパッケージ Plamo-5.2のパッケージ
kernel-3.9.3_plamoSMP-i586-P1.txz kernel-3.12.5_plamoSMP-i586-P1.txz
iproute2-3.8.0-i586-P1.txz iproute2-3.12.0-i586-P1.txz
btrfs_progs-20121105-i586-P1.txz btrfs_progs-3.12-i586-P1.txz
less-444-i586-P1.txz less-382-i586-P2.txz
linux_firmware-201303-noarch-P1.txz linux_firmware-201311-noarch-P1.txz
openssh-6.2p1-i586-P2.txz openssh-6.4p1-i586-P1.txz
openssl-1.0.0k-i586-P1.txz openssl-1.0.1e-i586-P2.txz
sudo-1.7.10p7-i586-P1.txz sudo-1.8.8-i586-P1.txz
hdsetup-5.1-i586-P1.txz hdsetup-5.2-i586-P1.txz
(not exists) lsb_release-1.4-noarch-P1.txz
aaa_base-5.0-noarch-P1.txz aaa_base-5.0-noarch-P2.txz
bzip2-1.0.6-i586-P1.tgz bzip2-1.0.6-i586-P3.txz
dhcp-4.2.5_P1-i586-P1.txz dhcp-4.2.5_P1-i586-P2.txz
etc-5.0-noarch-P18.txz etc-5.0-noarch-P21.txz
glibc-2.16.0-i586-P5.txz glibc-2.16.0-i586-P6.txz
kmod-13-i586-P2.txz kmod-13-i586-P3.txz
libtirpc-0.2.3-i586-P1.txz libtirpc-0.2.3-i586-P2.txz
network_configs-0.1-noarch-P2.txz network_configs-0.1-noarch-P3.txz
nvi-1.79-i586-P3.txz nvi-1.79-i586-P4.txz
shadow-4.1.4.2-i586-P10.txz shadow-4.1.4.2-i586-P13.txz
sysvinit-2.88dsf-i586-P5.txz sysvinit-2.88dsf-i586-P10.txz
linuxカーネル は3.9.3から3.12.5へ、iproute2 も3.8から3.12へ、btrfs_progs も日付けのバージョンから3.12という正式バージョンへ、それぞれバージョンアップしています。
ネットワークセキュリティの要(かなめ)であるopenssh/openssl も、半年強の間に複数回バージョンアップ しているようです。lessのバージョンが下がっているのは奇異に感じますが、これはless-444では日本語回りの処理が不十分だったため、動作する日本語パッチが存在するバージョンに戻したためです。
一方、このカテゴリでは、ソフトウェアのバージョンは変わらないままP2やP6といったビルド番号のみが増えているパッケージも多く、バージョンアップよりも細部のチューニングによって更新されたパッケージ が多いようです。
01_minimum
このカテゴリにはC/C++の開発環境やネットワーク用のツール等、GUIを必要としない基本ツール を収めています。
表2 Plamo-5.1→5.2で更新されたパッケージ一覧(01_minimum)
Plamo-5.1 Plamo-5.2
automake-1.12.4-i586-P1.txz automake-1.13.4-i586-P1.txz
kernel_headers-3.9.3_plamoSMP-i386-P1.txz kernel_headers-3.12.5_plamoSMP-i386-P1.txz
gnupg-2.0.19-i586-P1.txz gnupg-2.0.22-i586-P1.txz
libgpg_error-1.10-i586-P1.txz libgpg_error-1.12-i586-P1.txz
gpgme-1.3.1-i586-P1.txz gpgme-1.4.3-i586-P2.txz
libgcrypt-1.5.1-i586-P1.txz libgcrypt-1.5.3-i586-P1.txz
bind-9.9.2_P2-i586-P1.txz bind-9.9.4-i586-P1.txz
curl-7.30.0-i586-P1.txz curl-7.33.0-i586-P1.txz
ethtool-2.6.36-i586-P1.txz ethtool-3.10-i586-P1.txz
libpcap-1.2.1-i586-P1.txz libpcap-1.4.0-i586-P1.txz
postfix-2.10.0-i586-P1.txz postfix-2.10.2-i586-P1.txz
rsync-3.0.8-i586-P1.txz rsync-3.1.0-i586-P1.txz
wpa_supplicant-1.0-i586-P1.txz wpa_supplicant-2.0-i586-P1.txz
nfs_utils-1.2.5-i586-P2.txz nfs_utils-1.2.9-i586-P1.txz
autofs-5.0.6-i586-P2.txz autofs-5.0.7-i586-P2.txz
libusb-1.0.8-i586-P1.tgz libusb-1.0.9-i586-P1.txz
ruby-1.9.3_p392-i586-P1.txz ruby-2.0.0_p353-i586-P1.txz
sqlite-3.7.16.1-i586-P1.txz sqlite-3.8.0.2-i586-P1.txz
(not exists) elfutils-0.157-i586-P1.txz
(not exists) iw-3.10-i586-P1.txz
(not exists) dnsmasq-2.66-i586-P1.txz
(not exists) hostapd-2.0-i586-P1.txz
(not exists) parprouted-0.7-i586-P1.txz
(not exists) open_iscsi-2.0_873-i586-P2.txz
(not exists) cryptsetup-1.6.2-i586-P1.txz
libc-2.16.0-i586-P5.txz libc-2.16.0-i586-P6.txz
libtool-2.4.2-i586-P1.txz libtool-2.4.2-i586-P2.txz
bsd_games-2.17-i586-P2.txz bsd_games-2.17-i586-P3.txz
hddtemp-0.3_beta15-i586-P1.tgz hddtemp-0.3_beta15-i586-P3.txz
このカテゴリではソフトウェアのバージョンアップが18、新しく追加されたパッケージが7、設定ファイル等を修正した再ビルドが4、という結果になり、バージョンアップしたソフトウェア が目立ちます。
特にethtool-3.10, wpa_supplicant-2.0, ruby-2.0.0の3種ではメジャーバージョン(バージョン番号の一桁目)が更新されているので、互換性等に問題が無いか注意しておく必要がありそうです。
02_x11
先にも触れたようにPlamo-5.2ではX Window System一式を更新したので、このカテゴリでは大量のパッケージを更新しています。
更新したパッケージは87個でリストアップは省きますが、77個がソフトウェアのバージョンアップ、10個が新規パッケージの追加でした。
X Window System回りは、Plamo-5.0で採用したX11R77以来の1年半ぶりの更新 です。X11R78のリリーススケジュールは未定なものの、構成するソフトウェアはほぼ全てバージョンアップしており、開発は着実に進んでいるようです。
03_xclassic
このカテゴリは、XfceやKDEといった統合デスクトップ環境が生まれる以前の、かなり古いX用ソフトウェア を集めています。今回のアップデートで更新したパッケージは2個、1つは再ビルドで、もう1つはソフトウェアのバージョンアップでした。
表3 Plamo-5.1→5.2で更新されたパッケージ一覧(03_xclassic)
Plamo-5.1 Plamo-5.2
FreeWnn-1.1.1_a021-i586-P4.txz FreeWnn-1.1.1_a022-i586-P1.txz
TiMidity++-2.14.0-i586-P1.txz TiMidity++-2.14.0-i586-P2.txz
FreeWnnは、7年8ヵ月ぶり にソフトウェアのバージョンが上がったそうです。
04_xapps
このカテゴリは、firefoxやgimpなど特定のデスクトップ環境に依存しないX用ソフトウェア を集めています。firefoxやthunderbirdはこの7ヵ月の間にずいぶんバージョン番号が進んでいて、開発の活発さをうかがわせます。
表4 Plamo-5.1→5.2で更新されたパッケージ一覧(04_xapps)
Plamo-5.1 Plamo-5.2
gimp-2.8.0-i586-P1.txz gimp-2.8.4-i586-P1.txz
hplip-3.12.10a-i586-P1.txz hplip-3.13.10-i586-P1.txz
GraphicsMagick-1.3.16-i586-P1.txz GraphicsMagick-1.3.18-i586-P1.txz
dbus-1.6.8-i586-P1.txz dbus-1.6.18-i586-P1.txz
dbus_glib-0.100.1-i586-P1.txz dbus_glib-0.100.2-i586-P1.txz
nspr-4.9.6-i586-P1.txz nspr-4.10.2-i586-P1.txz
glib-2.34.3-i586-P2.txz glib-2.36.4-i586-P1.txz
librsvg-2.36.1-i586-P1.txz librsvg-2.40.0-i586-P1.txz
nss-3.14.3-i586-P1.txz nss-3.15.3-i586-P1.txz
polkit-0.107-i586-P2.txz polkit-0.112-i586-P1.txz
thunderbird-17.0.6-i586-P1.txz thunderbird-24.2.0-i586-P1.txz
firefox-21.0-i586-P1.txz firefox-26.0-i586-P2.txz
gegl-0.2.0-i586-P2.txz gegl-0.2.0-i586-P3.txz
system_config_printer-1.3.11-i586-P1.txz system_config_printer-1.3.11-i586-P2.txz
poppler-0.20.3-i586-P1.txz poppler-0.20.3-i586-P2.txz
05_ext
このカテゴリには、XfceやKDEといった、統合デスクトップ環境が共通に利用するソフトウェア を集めています。ここでは23がバージョンアップ、17が新規追加、4つが再ビルドでした。
表5 Plamo-5.1→5.2で更新されたパッケージ一覧(05_ext)
Plamo-5.1 Plamo-5.2
ffmpeg-1.2-i586-P2.txz ffmpeg-1.2.4-i586-P1.txz
obexd-0.47-i586-P1.txz obexd-0.48-i586-P1.txz
boost-1.53.0-i586-P1.txz boost-1.54.0-i586-P1.txz
git-1.8.1.4-i586-P1.txz git-1.8.4.4-i586-P2.txz
jre-1.7.0_21-i586-P1.txz jre-1.7.0_25-i586-P1.txz
qt-4.8.4-i586-P1.txz qt-4.8.5-i586-P3.txz
lua-5.1.4-i586-P3.txz lua-5.1.5-i586-P1.txz
subversion-1.7.6-i586-P1.txz subversion-1.7.10-i586-P1.txz
httpd-2.4.4-i586-P4.txz httpd-2.4.7-i586-P1.txz
lftp-4.4.4-i586-P1.txz lftp-4.4.6-i586-P1.txz
php-5.4.15-i586-P2.txz php-5.5.7-i586-P1.txz
proftpd-1.3.4c-i586-P1.txz proftpd-1.3.4d-i586-P1.txz
samba-3.6.12-i586-P1.txz samba-3.6.22-i586-P1.txz
perl_XML_Simple-2.18-i586-P2.txz perl_XML_Simple-2.20-i586-P3.txz
pyqt-4.9.4-i586-P1.txz pyqt-4.10.3-i586-P1.txz
sip-4.13.3-i586-P1.txz sip-4.15.3-i586-P1.txz
lcms2-2.3-i586-P1.txz lcms2-2.5-i586-P2.txz
libical-0.48-i586-P1.txz libical-1.0-i586-P2.txz
taglib-1.8-i586-P1.txz taglib-1.9.1-i586-P1.txz
upower-0.9.18-i586-P1.txz upower-0.9.23-i586-P2.txz
libarchive-3.0.4-i586-P1.txz libarchive-3.1.2-i586-P2.txz
libmng-1.0.10-i586-P2.txz libmng-2.0.2-i586-P2.txz
(not exists) celt-0.5.1.3-i586-P2.txz
(not exists) mercurial-2.7-i586-P1.txz
(not exists) yajl-2.0.1-i586-P2.txz
(not exists) docbook2X-0.8.8-i586-P1.txz
(not exists) perl_XML_NamespaceSupport-1.11-i586-P1.txz
(not exists) perl_XML_SAX_Base-1.08-i586-P1.txz
(not exists) perl_XML_SAX-0.99-i586-P2.txz
(not exists) docutils-0.11-i586-P1.txz
(not exists) ipaddr_py-2.1.10-i586-P2.txz
(not exists) pyparsing-2.0.1-i586-P2.txz
(not exists) urlgrabber-3.9.1-i586-P2.txz
(not exists) graphviz-2.34.0-i586-P3.txz
(not exists) youtube_dl-2013.10.23.2-i586-P1.txz
(not exists) Python3-3.3.2-i586-P3.txz
(not exists) dmidecode-2.12-i586-P1.txz
(not exists) usbredir-0.6-i586-P1.txz
(not exists) vte3-0.34.7-i586-P3.txz
icu-49.1.2-i586-P1.txz icu-49.1.2-i586-P2.txz
gtk_vnc-0.5.2-i586-P1.txz gtk_vnc-0.5.2-i586-P5.txz
remctl-3.2-i586-P1.txz remctl-3.2-i586-P2.txz
zope.interface-3.7.0-i586-P1.txz zope.interface-3.7.0-i586-P2.txz
udisks2-1.98.0-i586-P1.txz udisks2-1.98.0-i586-P2.txz
このカテゴリは以前から整理が不十分で、関連性の低いパッケージの仮置き場的になっているのが気になっていました。今回の更新でもあれこれパッケージが追加され、混乱の度が増しているようなので、そろそろ本格的な整理が必要そうです。
06_xfce
このカテゴリに収めているXfceデスクトップ環境 は、広く利用されているものの開発ペースはのんびりしており、現在でも2012年4月に公開されたXfce-4.10が公式の最新バージョンです。今回の更新でもソフトウェアのバージョンアップはなく、ライブラリ等の更新を反映した再構築のみでした。
表6 Plamo-5.1→5.2で更新されたパッケージ一覧(06_xfce)
Plamo-5.1 Plamo-5.2
orage-4.8.3-i586-P1.txz orage-4.8.3-i586-P3.txz
thunar_volman-0.8.0-i586-P1.txz thunar_volman-0.8.0-i586-P5.txz
KDEのように数ヵ月ごとにバージョンアップされるのも大変ですが、Xfceのように長く公式リリースが無いのもどうなっているのか心配になります。Googleで調べてみると、開発版であるXfce-4.11 というバージョンはリリースされているようなので、手が空いたら調べてみることにしましょう。
07_kde
KDEデスクトップ環境 は4.9.5から4.11.3にバージョンアップしたので、パッケージ類は全面的に更新しています。大量になるのでリストは省略しますが、ソフトウェアのバージョンアップが103、追加が75でした。
KDE-4.11では、KDE-4.9のころにあったkdegamesやkdetoysといった大きな括りが廃されて、それぞれに含まれていたソフトウェアが独立に扱われるようになったため、追加パッケージが急増したようです。
08_tex
このカテゴリで更新したパッケージはありませんでした。もっとも、ここに収録しているptexlive-2010 は既に開発が終了しているので、今後はtexlive等の現状を確認しながら、このカテゴリをどうするか考えることになりそうです。
09_kernel
カーネルのバージョンを上げたので、カーネルのソースコード のバージョンも上っています。
表7 Plamo-5.1→5.2で更新されたパッケージ一覧(09_kernel)
Plamo-5.1 Plamo-5.2
kernelsrc-3.9.3_plamoSMP-noarch-P1.txz kernelsrc-3.12.5_plamoSMP-noarch-P1.txz
ついでにパッケージのサイズを見てみると、3.9.3の73MBに対し3.12.5では78MBになっていました。サイズの点からもlinuxカーネルの着実な成長は見てとれそうです。
10_lof
LibreOffice のバージョンを4.0.2から4.1.3に更新したため、このカテゴリも全パッケージを更新しています。内訳は、ソフトウェアのバージョンアップが60、追加が2という結果で、LibreOfficeもKDE同様、ソフトウェアの切り分け方を多少変更しているようです。
11_mate
Mateデスクトップ環境 はPlamo-5.2で新規に追加したので、このカテゴリでは24のパッケージが追加となりました。
以上、32ビット版を元にざっとカテゴリごとにパッケージの更新状況を眺めてみました。Plamo-5.2での更新は、メンテナンス・リリースが前提だったため、各ソフトウェアの最新バージョンを追いかけるよりも、過去との互換性を重視したバージョンを選んでいます。そのため、ここで紹介したバージョンが各ソフトウェアの開発状況をそのまま反映しているわけではありません。しかしながら、ネットワークやセキュリティ関連のソフトウェアはバージョンアップの頻度が高く、開発系のツールがそれに続き、基本ツールの類いは「枯れた」状況になっていることは、今回の結果からも見てとれると思います。
Plamo Linuxの次のバージョンは、GCCやglibcを含めて最新バージョンを追求した「6.0」にしたいなぁ…… と考えてはいるものの、どの程度まで基盤部分に手を入れるかは現在も思案中というところです。