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

第21回64ビット化への遠い道程その3]

Plamo Linuxの64ビット化に着手したのは去年の秋口、そろそろ寒くなってこようかというころでした。その後、あっという間に季節は巡り、桜も満開をすぎて葉桜の季節になってしまいました。

手元では開発用マシンに何度目かのフルインストールを済ませ、開発環境やメール、Web、マルチメディアやOpenOfficeなど、64ビット環境のみで普段の仕事に支障ない程度には整ってきました。64ビット用のマシンはメモリも贅沢に積んでいるので、多数のプロセスを同時に動かしても反応が悪くなることはなく、快適な日々を送っています。

と書くと、そろそろ正式リリースを……、という話になりそうですが、過去の経験からしても、ここから先の調整にむしろ時間がかかりがちです。特に今回は個人用の設定ファイル等も見直す必要があるので、それらを整理・調整するにはもうしばらく時間がかかりそうです。

もっとも、後述するように、現状のパッケージ一式をインストール可能にしたDVDのイメージファイルはテスト用に公開しているので、Plamo Linuxの64ビット環境に興味ある人はぜひ試してみて、テストレポートをお寄せください。今回は、そのような人柱 ^H^H 挑戦者の方向けに、64ビット版Plamoを試してみる際の注意点を紹介してみます。

Plamo64の各種環境

現在開発中の64ビット版Plamo(以下Plamo64と略します)は、Plamo-5.0のx86_64アーキテクチャ用としてリリースする予定です。

かっては、マルチメディアプレイヤーを中心にEUC-JPな文字コードを使ったファイル名を正しく認識してくれないアプリケーションが多かったので、Plamo-5.0ではロケールをUTF-8にしようかと考えていたこともありましたが、メンテナの本多さんのご尽力で文字コード回りの問題がずいぶん改善したこともあって、Plamo-5.0でもロケールはデフォルトではEUC-JP(ja_JP.eucJP)のままにする予定です。

XfceやKDEといった統合デスクトップ環境で使う場合、ロケールをUTF-8にしてもたいていそのままで動くとは思いますが、コンソールはUTF-8に対応していないuniconを使っているため、コンソール環境ではUTF-8な文字コードは正しく表示できないのでご注意ください。

インストーラ

インストーラはPlamo-4.73と同様、unicon上でdialogを使ったCUI形式になっています。操作方法や処理の流れも従来通りなので、今までにPlamo Linuxをインストールしたことがある人なら特に問題なく使えるでしょう。

図1 Plamo64のインストーラ
図1 Plamo64のインストーラ

ただし、現在はパッケージが整っていないため、Plao-4.73にあったwebdbとgisのカテゴリは無くなり、gnomeカテゴリもデスクトップ環境全体ではなく一部のソフトウェアを採用するに留まっています。また、Plamo-4.73ではパッケージのインストール時に表示されていた短い説明文も未整備のため表示されません。

カーネル

現在採用しているカーネルは2.6.36.2をベースに、P-Plamoに必要なaufsやコンソールでの日本語表示に必要なuniconといったパッチをあててビルドしています。2.6.36.2というバージョンはやや古くなってきたので新しいバージョンに更新したいところですが、aufsやuniconの対応状況を確認する必要があるので、多少時間がかかりそうです。

ブートローダ

現在、ブートローダはliloのみになっています。

図2 liloの起動画面
図2 liloの起動画面

grubを捨てるつもりはないのですが、liloが思ったよりも簡単に動いてしまったので、新しいgrub2に開発の中心が移り、64ビット化が面倒そうなgrub(legacy)は放置されている状況です。

開発環境

Plamo64の主要な開発環境は、GCC-4.5.2Make-3.82binutils-2.21eglibc-2.12perl-5.12.2python-2.7.1ruby-1.8.7といったところです。

GCCについては、Plamo-4.73ではGCC-4.3.5だったので、マイナーバージョンが2つほど上っています。GCC-4.5系では文法チェック等も多少厳しくなっており、4.3.5までなら問題なく通っていたコードに警告メッセージが出ることもあるようです。

通常ならば警告メッセージが出てもコンパイル処理は続行されますが、たまに文法チェックを厳密にしようとMakefile中で-Werrorオプションを指定している場合があり、そのような場合は警告メッセージでもコンパイルが中断されるので注意してください。

内部的にはGCC-4.3系でも必要だった数値演算用ののGMPやMPFRといったライブラリに加えて、GCC-4.5系では複素数演算用のMPCやループ最適化のためのPPLやClooGといったライブラリが必要になっていますが、それらの違いはコンパイラを使う分には影響ないでしょう。

一方、Make-3.82では、それ以前のバージョンと動作が非互換になる修正がいくつか入っています。この変更の影響はかなり大きく、3.81までは問題なかったMakefileが、3.82ではエラーになって通らない例がいくつも見られました。Plamo64環境でMakefileがエラーになれば、まずはこの非互換性を疑ってください。

PythonはPlamo-4.73までで採用していた2.6系に対し、2.7系を採用しています。現在、Pythonの開発の中心は3.0系に移行していますが、3.0系のPythonは広く普及している2.6系と非互換な変更があちこちに入っているため、両者の溝を埋めるために3.0系の新機能を2.6系にバックポートしたバージョンがリリースされることになりました。そのバージョンが2.7系で、Plamoでもここしばらくは2.7系で互換性を保ちつつ、次第に3.0系に移行していく予定です。

Rubyも最近では1.9系に開発の軸足が移っており、Plamoでもメンテナの加藤さんが1.8系と共存できる形で1.9系のパッケージを作ってくれています。

GUI環境

GUI環境はX11R76をベースに、KDE-4.4.5Xfce-4.8が入っています。

図3 Plamo64のXfce-4.8環境
図3 Plamo64のXfce-4.8環境

Xのサーバはxorg-server-1.9.3で、最近のXでは設定ファイルであるxorg.confが無くてもそれなりに動くようにはなっているものの、xorg.confを作っておく方が制御しやすいように思うので、手元ではxfplamoconifg/etc/X11/xorg.confを作るようにしています。

なお、xorg.confで指定してもキーボードが日本語モード(JP106)にならない、というバグレポートが届いています。一応、手元の環境ではxorg.confの

Section "ServerFlags"
        Option      "AutoAddDevices" "false"
EndSection

の部分を有効にしておけば、InputDeviceセクションXkbLayoutの設定で切り替えられることを確認していますが、環境によってはこの設定だけではダメで、udevレベルの設定を追加する必要があるそうです。詳細については、メンテナの加藤さんのページを参照してください。

Plamo-4.73に含まれていたGUI環境のうち、twm、afterstep、qvwmといった古い世代のウィンドウマネージャやGNOMEは(現在のところ)Plamo64には含まれていません。また、ktermやkinput2など、古い世代のX用アプリも含まれていないので、KDEやXfceといった統合デスクトップ環境を使いたくない人は注意してください。

なお、これらのパッケージは廃止したわけではなく、メンテナの手が回らないので64ビット環境に移行できていないというのが正直なところです。これらのパッケージが必要な方はぜひ開発にご協力ください。

日本語入力環境

上述のように、古い世代のX用アプリにはメンテの手が回っていないため、長く使っていたkinput2やCanna、FreeWnn等は未サポートで、インプットメソッドとしてuimIBus変換エンジンとしてはAnthySKKになっています。

kinput2やCanna等も廃止というよりメンテナの手が回っていないので、必要な方はぜひご協力ください。

エディタ

Emacsは23.3.3に更新し、スケーラブルフォントを使うようになっています。

図4 Emacs-23.3.3の起動画面
図4 Emacs-23.3.3の起動画面

現在、Emacs自体は問題なく動作していますが、かなり凝った作りになっていた個人設定ファイル類の見直しが必要になっていて、細部の調整にはもうしばらくかかりそうです。

viは一時期vimにしていましたが、使いなれたnviの方が手に馴染んでいるので、Plamo-4.73同様nvi-1.79_m17nに戻しています。個人的には、EUC-JPロケール上ならばこのバージョンが一番使い勝手がいいように思っていますが、ベースとなっているnviがUTF-8には対応していないバージョンのため、最近増えているXMLベースの設定ファイルを修正したい場合はvimに入れ替えた方が便利かも知れません。

サウンドサーバ

Plamo64では、従来使っていたesd(Enlightened Sound Daemon)に代わり、Pulseaudioをサウンドシステムに採用しています。Pulseaudioは、開発が停滞しているesdに置き替わることを目指したサウンドシステムで、esd互換の機能に加えて、より新しい機能がいくつも組み込まれています。

たとえば、esdでは音量の調整はシステム全体で共通でしたが、Pulseaudioを使うとアプリケーションごとに音量を調整するようなことも可能になります。

図5 pavucontrolの画面例
図5 pavucontrolの画面例

もっとも、その分、設定は多少複雑になっていて、/etc/pulse/以下の設定ファイルでロードするモジュールを細かく管理しています。音声が正しく出力されない場合は、このディレクトリにある設定ファイルを確認してください。

TeX

メンテナの加藤さんのご苦労でptexlive-2010がパッケージ化されました。

TeXをUNIX環境で使いやすくするためのディストリビューションにはいくつかの種類があり、Plamo-4.73まではteTeXをベースにしたpteTeX3を利用していましたが、大本であるteTeXの開発が終了したため、TeX Liveプロジェクトの成果を元に日本語対応したptexliveに移行することになりました。

加藤さんによると、TeX Live-2009にptexliveパッチをあてたptexlive2010環境をパッケージ化していて、基本的な機能はほぼ使えるようになったとのことです。詳細については加藤さんの紹介ページをご参照ください。

ただし、このパッケージはかなり巨大で、圧縮時で902MB、展開するには約2GBの領域が必要です。これは、元のTeX Liveの開発者たちが、一つのパッケージとしてまとめるよりもLiveDVDといった形で利用することを想定しているためで、流通しているTeXマクロの一大コレクションの観を呈しています。

このように巨大なパッケージのため、私も含めテスターの手が回っていないので、TeXに関心と必要のある方はぜひテストにご協力ください。

メディアプレイヤー

前回も紹介したように、Plamo64ではxineMPlayerVLCtotemの各プレイヤーを収録すると共に、GTKベースのxineのフロントエンドであるgxineやQtベースのMPlayerのフロントエンドであるSMPlayerなども収録しています。

なお、本連載でも何度か取りあげたtotemのYouTube動画再生機能は、アプリケーションからビデオデータへの直接アクセスを制限するというYouTube側の方針のため、現在は使用できなくなっているようです。

APIの変更に対応するという技術的なレベルの問題は容易に解決できますが、この種のライセンスレベルの問題の解決にはかなり時間がかかることでしょう。


以上、簡単にPlamo64の変更点や注意点を紹介しました。最初にも述べたように、Plamo64は現在も開発中で、開発中のスナップショットをテスト用にまとめたDVDイメージはFTPサーバのPlamo-test以下のディレクトリで公開しています。Plamo-testディレクトリはミラーサイトでも公開されており、KDDlabsのサーバでは以下のURLでアクセス可能です。

本稿執筆時点では、plamo64-0.3-110408_dvd.isoが最新のテスト用DVDのイメージになっていますが、このファイルは適宜更新されるはずなので、バージョン番号や日付はアクセス時点での最新版を探してください。

なお、x86_64用のバイナリはx86用に比べて数割程度大きくなると共に、動作に必要なライブラリ等も増えているため、必要なディスク容量はTeX環境を除いてもPlamo-4.73の1.5~2倍程度になり、TeX環境を入れるためにはさらに2GB程度が必要になります。テストに協力いただける方はディスクの容量にはご注意ください。

おすすめ記事

記事・ニュース一覧