Gentooインストール体験記

Gentooはこれまで私が使ってきたどのLinuxディストリビューションにも似ておらず、動作のしかただけでなく設計の背後にある思想まで違っている。Gentooが問うているのは、物事を簡単化するために何がGentooにできるかではなく、ユーザが厳密に何をGentooにさせようとしているかであり、そこで求められていることだけを正確に行うのがGentooなのだ。精一杯努力してみたのだが、私の場合は結局Gentooの利用をあきらめるしかなかった。どうしてそんなことになったのか? 本稿ではそのいきさつを語ってみたい。

Gentooのインストールに乗り出したときは、これまで使ってきたほかのディストリビューション(Caldera、Red Hat、Mandrake、Xandros、Storm、SUSE、Debian、Ubuntu)に対するGentooの大きな違いは、自分が使うものはすべてコンパイルが必要になるという手のかかり方だと考えていた。しかし、10日間にわたるGentooとの格闘の末、この考え方が間違っていたことに気づいた。

金曜日にインストールを始めてから週末までかかって、超高速の最小構成(minimal)インストール(LiveCD)と一部コンパイル済みのGentoo Reference Platform(GRP)インストールの実行を行った。月曜日になって、これで仕事用デスクトップマシンのプラットフォームとして使えるくらいにはGentooに精通しただろうという自己判断を下した。昔のGentooユーザはコンパイルおよびインストールの前に必死でソースコードを抽出しなければならなかったものだが、今ではLiveCDのおかげで誰でもインストールできるほど簡単になったのだ、と同僚に講釈を垂れるくらい余裕に満ちた心持ちだった。

だが、私はGentooのインストールを甘く見過ぎていた。Gentooを正しくインストールするには、詳細なマニュアルに目を通す必要がある。それも最低2回、始めから終わりまできっちりとである。特に「USE flags(フラグの利用)」と「Portage」のセクションは注意深く読まなければならない。

インストールが完了するまでには「RTFM(Read The Fucking Manual:該当のマニュアルを参照)」という文言に何十回と遭遇する。しかし、それならインストール中に参照できるようにマニュアルを手元に置いておけばよいのかと単純に受け取ってはならない。なぜなら、インストール中に何らかの疑問が生じたときには、もうその時点で手遅れになっているかもしれないからだ。マニュアルはインストールを開始する前に読んでおかなければならない。

マニュアルを読み終えたら、そこに記されていない疑問点の調査を始めることができる。自分の使っているハードウェアおよび各種コンポーネント用のドライバについて知っておくべきことをすべて調べ上げるのだ。GCCと、GCCバージョン4.1.1の動作を制御するオプションについても調査しておくこと。これについては、情報をまとめたリストがある。また、GUI表示を利用するなら、Xorgについても熟知しておく必要がある。

最初に行ったインストールでは勘違いがあった。自分ではGentooのLiveCDを使って最小構成インストールを行っているつもりだったが、実は最小構成インストール用のLiveCDはそのLiveCDとは別物だったのだ。そうと知らない私は、LiveCDのインストールが15分もしないうちに終わったときには、リブートの後で引き続きハードディスクからインストールが行われるのだろうと想定していたのだが、当然、その気配は一向になかった。これは数々の思い違いのうち、最初にわかったものだ。もっとも、この思い違いのおかげで私がirc.freenode.netにあるIRCチャンネル#gentooを利用するようになったのは好都合だった。

GentooのIRCリソース

Gentoo 2006.1 LiveCD
クリックで拡大
Freenode上にある約120のGentoo専門チャンネルの1つ、#gentooは参加者の多い人気チャンネルで、Gentooのインストールと使い方を知るのに役立つ非常に有益なIRCリソースだ。通常は900を超える人々がこのチャンネルに参加している。その中には知識が豊富で頼りになる心優しい人々がいて、初心者のために自らの時間を割いてGentooに関する手助けをしてくれる。

#gentooチャンネルで(最小構成インストール用の)LiveCDによるインストールが済んだ後のインストールの継続方法を尋ねたところ、Gentoo 2006.1LiveCDマニュアルを参照するように指摘された。このマニュアルの中の数ページを読んで、最小構成のLiveCDはGentoo 2006.1LiveCDとは別物であることがやっとわかった。そこで、正しい方法でインストールをやり直すことにした。

ダウンロードしてCDに焼いた最小構成インストール用のLiveCDからブートすると、Gentoo用の素敵な背景とともにネットワーク接続されたGNOMEのデスクトップ環境が現れた。このデスクトップには「Computer」、「Gentoo’s home」(Gentooはデフォルトのユーザ名)、「CD-ROM drive」の各アイコンのほか、CLIおよびGTKバージョンのGentooインストーラやインストーラFAQのアイコンも表示されていた。

私が起動したのはGTKインストーラである。これについては17ページに及ぶインストールおよび設定スクリプトの1ページ目に説明されている。最も適切と思われる設定を選んでインストールを開始するとすぐに、動作していないあらゆるものを対象としたGCCによるコンパイルが始まった。金曜日の午後のことだった。ところが土曜の朝10:30になってもまだコンパイルが続いていたので、別のインストール方法に変えることにした。

次に試みたのは、事前にコンパイルされたパッケージをできるだけ利用するGentoo Reference Platform(GRP)によるインストールだ。この方法によるインストールは何の問題も起こらずに正常に終了したため、今後に備えてこのテストマシン上でGentooの簡単な動作確認を行い、各種アプリケーションをインストールするためのPortageおよびemergeの使い方を学んだ。これでGentooへの本格的な移行に必要な知識は習得できたと思った私は、仕事用のデスクトップマシンをUbuntuからGentooに移行させることにした。

別にUbuntuに不都合を感じていたわけではないが、特定のディストリビューションしか知らないというロックイン状態に陥ることのないように、私は6~12カ月ごとに新しいディストリビューションに移行するようにしている。もう1年以上も満足してUbuntuを使ってきたので、きっとまたUbuntuを戻ることになるだろうが、そろそろ移行すべき時期であり、実際にGentooを使い込んで評価するまたとない機会だったので思い切って決心したのだ。

移行の開始

移行を開始したのは月曜日の正午ごろで、Gentooの伝統と思想を尊重して、OpenOffice.org以外のほぼすべてのアプリケーションはコンパイルの段階からインストールを試みようと決めた。この日はちょうどレイバーデイの祝日で、翌日の仕事が始まるまでにはほぼ24時間あった。

GentooのLiveCDは、私の仕事用マシンのビデオカードとの相性が悪かったらしい。ブートすると、テキストの表示が画面の横方向およそ4分の3の位置で始まり、画面の左端からその続きが折り返し表示されるのだ。GUI画面になっても、同じように表示がずれてしまう。だが、モニタの自動画像調整の機能を使うことで、正しい表示に設定し直すことができた。

インストールには、GRPの追加パッケージ群を利用するStage 3を選択した。ところが、先に進もうとしてもインストール作業を再開できない。インストーラにStage 3のtarballの取得先を指示していなかったからだった。取得先がわからなかったので、#gentooチャンネルにアクセスした(その後もこのインストールが終わるまでそこにいた)。LiveCDからのインストール途中でもインターネットの参照やチャット、ゲームが行えるため、インストールを中断せずに済み、またIRCチャンネルにいた親切な人からtarballのURIを教えてもらえたのは幸いだった。

Portageツリーのスナップショット版を選択した私は、make configの設定をデフォルトのままにして次に進んだ。続いてLiveCDのカーネルの選択を開始した。インストーラの説明によると、そのほうがシステムの起動および実行が速くなるという。ところが、カーネルソースを必要とするパッケージがどれもインストールできないことに気づいた。そこで、ソースコードからカーネルのフェッチおよびビルドを行なうことにした。

kernel-configオプションは空白のままにしておき、ブートローダにはGRUBを選択して、GRUBは/dev/hadのマスターブートレコード内にあると指定した。また、ネットワークインタフェースデバイスとしてeth0を選択し、ネットワーク設定をDHCPとした後、cron処理とログ出力についてはデフォルト案を採用した。表示されたExtrasメニューからは、GNOME、Xorgのほか、いくつかの追加パッケージを選択した。

こうして本格的にインストールが始まると、しばらく私は麻雀ゲームにうち興じた。そのうち麻雀にも飽きたので、Gentoo FAQを拾い読みしていると、質問の1つに「Gentooはインストールがあまりに難し過ぎて泣きたくなります」と書かれているのが目に入った。その回答には 「/dev/nullでもご覧になってください」と記されていた。

そうこうしているうちに午後5:30になり、Gentooインストールの進み具合をチェックしたところ、474パッケージのうち120が完了していた。もちろん、パッケージによってはほかのものよりインストールに時間がかかるものもある。たとえば、Xlibは大物だったようで、そのインストールが1時間前に終わってからは別のパッケージ20個のコンパイルおよびインストールが完了していた。そして午後9:00になっても175のパッケージしか完了していなかった。この日のうちにインストールを終えたいという私の望みは絶たれた。

インストール失敗

翌火曜日の 午前7:30、Gentooは326番目のパッケージを処理しており、インストールはまだ続いていた。数時間後、コンパイルが始まってほぼ24時間が経過したところで、media-libs/zlib1.1.3.r2がコンパイルできなかったというメッセージが出てインストールに失敗した。最初は、これまでの結果がすべて無駄になるかと思われたが、FAQやIRCチャンネルによれば--resumeオプションと--skip-firstオプションを指定することでemergeの実行を再開できることがわかった。ただし、emergeにはほかの考え方もあり、それによると再開はできないとなっていた。

成功を祈りながら、初めてハードディスクからのブートを試みたところ、このブートはうまく行ったので、rootとしてログインした。というのも、インストール中にユーザアカウントを追加しようとして失敗していたからだ。続いてGNOMEのユーザおよびグループマネージャを使ってユーザの追加を行い、rootをサインオフして一般ユーザとしてサインインし直した。

最優先ですべきことは、IRCで同僚とやりとりできるようにXchatをインストールすることだった。この日午後の残った時間は、満ち足りた気分でGentoo上であれこれとインストールを行い、サウンド機能を動作させ、X環境の調整を行った。ここまでは順調だったのだが、この後でNvidiaドライバをインストールしようとしたのがいけなかったようだ。とにかく、そのせいでX環境は私の手には終えないほどに破壊されてしまったのだ。IRCチャンネルからの声は同情的だったが、何が原因でそうなったのかが明確でなかったため、彼らがこの問題を解決することは現実的には不可能だった。午後5時を過ぎたところで、私は悔しさをこらえながら再インストールを決意した。

後から思えば、あの問題の原因は/etc/make.confのキーワードを~X86に設定していたことだったのではないかと考えられる。この設定を、Portageは不安定版のコードを使ってもよいと受け取ったのだ。私がその設定を変えたのは、インストールしたかったパッケージの1つでそうする必要があり、1つのパッケージの中でテスト版/不安定版のコードを許可するための適切な方法を知らなかったからである。その方法を知らなかったがために大きな犠牲を強いられたわけだ。

Gentooインストール:2回目の挑戦

2回目の状況は、1回目とはかなり違っていた。インストールを開始する前に、ホームディレクトリ全体を保存できるようにプライマリのハードディスクからセカンダリのハードディスクに移しておいた。システムがクラッシュする前に何としてもやるべきことの1つに、電子メール、チャット、ブラウザについて設定およびデータのセカンダリディスクからのリカバリがあったからだ。

またスピードを重視し、できる限りGRPのバイナリパッケージを選択するようにした。1時間と少し経ったところで、データを失うことなくシステムを再び動作させることができた。モニタの解像度は適切なものではなかったが、前回のX環境の調整で起こったことを考えると怖くなって、なかなか設定を変える気になれなかった。

その後数日間は不適切な解像度のままで我慢しながら、Ubuntuを利用していたときと同じ機能性を一刻も早く取り戻すべくシステムのインストールと調整を続けた。そしてついに、解像度の問題の解決を試みることに決めた。

モニタの設定を変えるとすぐに、実際にはそんなことはなかったのだが、周波数が「範囲外」だというメッセージが出てX環境が再びクラッシュし始めた。さらに悪いことに、シングルユーザモードでのブート方法がわからず、GRUBのメニューにもシングルブートのオプションしか含まれていなかったため、GDMが起動して何も対策を講じることができないうちにクラッシュしてしまった。

GRUBのブートコマンドを編集していろいろな形で試してみたが、正しい解決策はとうとうわからずしまいだった。そこで、正しく機能するXorg.confファイルをLiveCDからハードディスクに単純にコピーして使ってみることにした。LiveCDのブート後、ハードディスクドライブをマウントしてXorg.confファイルをコピーし、そのハードディスクからリブートすると……やった、うまく行った!

ところが今度はサウンド機能が再び動作しなくなっていた。

これがGentooへの移行を断念するとどめの一撃になった。持てるすべての時間をGentooに費やしたが、それが完全に徒労に終わってしまった。私はこの大規模な移行を中止し、Gentooは単純に自分には向かないのだと認めた。

Gentooに向いているのは?

約1時間後、私のマシンからGentooは姿を消し、代わりにDebian Etchが入った。正常に動作させるのに5分、プリンタの設定にも5分かかったが、モニタの解像度の問題は起こらなかった。まだ調整すべき項目は少し残っているものの、今やシステムの状態はあらゆる点でUbuntuを走らせていた頃とほとんど同じところまで到達している。

Gentooと私の相性が良くなかったのはなぜだろうか? インストール中に起こったすべての問題は私自身に非があるのだと言うGentooユーザもきっと何人かいるだろう。そうした人々のために予め断っておこう。確かにその通りだ。もし私にGentooギークに負けないくらいの知識があれば、あのような問題に遭遇することは決してなかっただろう。悪いのは私だ。

Gentooは評判がよく、強力で、精巧に作られたギーク指向のディストリビューションである。細部まで自分の手でコントロールしたいという人には、Gentooがその手段を提供し、その望みが叶うように幸運を祈ってくれるだろう。どれほどの幸運が必要かは、本人がどれだけGentooのことを知っているかによって変わってくる。しかし、私の場合はただ単にGentooに向いていないのだ。優れたプログラマもそうだが、私は不精者だからだ。かつてはカーネルのコンパイルを行った翌朝はコーヒーをすすりながらその話を誰かに聞かせるのが楽しみだった。ところが最近は、オペレーティングシステムの世話をするよりもそれ以外のことにマシンを使いたいというのが正直な気持ちだ。

NewsForge.com 原文