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

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

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

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の対応状況を確認する必要があるので,多少時間がかかりそうです。

uniconは,長年にわたってdaiさんがメンテナンスしてくれてましたが,2.6.31を最後にメンテを終了されたので,その後はPlamoローカルで既存のパッチをだましだまし使っているような状況です。一応,2.6.37/2.6.38あたりでも動きそうだという報告はあったのでもうしばらくは大丈夫そうですが,そろそろその先のことも考えておいた方がよさそうです。

ブートローダ

現在,ブートローダは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系のパッケージを作ってくれています。

著者プロフィール

こじまみつひろ

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

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

コメント

コメントの記入