萬由無事覚書

不知物故萬由無事覚書仕候也。

ちょっと知識のある人向けGentoo Linuxの簡単な紹介

Linuxの使用歴が長い人は、Gentoo Linuxをご存知だと思う。

「何でもできるが、目的がなければオプションが自由すぎて何にもできない」ことで有名な、あの小粋なあんちくしょうだ。

しかし実際に使ってみると、サーバ用途とかCLIを用いた開発環境としては結構向いてると思うのだ。

ここでは、ちょいとLinuxを知っているけどGentooを知らない人向けに、Gentoo Linuxを簡単に紹介してみたいと思う。

では最初に、よくある利点と欠点のリストを挙げてみよう。

利点

  • (基本的には) インストールごとにコンパイルするので、コンパイル時にしか設定できない機能の有無を、簡単に切り替えられる。
  • つまり、使う人が使いやすいようにトコトンまでカスタマイズできるってことだ。
  • 一方で、コンパイル済みパッケージを作る機能がある。こうすると、フルカスタマイズされたバイナリ・パッケージを用いた高速インストールができる。多くのマシンに同じ構成のパッケージをインストールしたい場合は特に役に立つ。
  • コンパイル時のフラグを適切に設定することで、速度的なチューニングを行う余地がある。生成されるバイナリを実行されるマシン専用にすることで最高速を叩き出す、なんて言う無謀なチューニングだってできる。
  • Gentooにバージョン番号はない。更新は随時提供され、更新されたGentooが最新のGentooだ。一時期にまとめて更新が提供されるわけじゃない。ローリング・リリースってやつだね。
  • 共有ライブラリの依存地獄は、ちょっと経験を積めば簡単に解消できる。と言うか、再コンパイル (つまり再インストール) してやれば大抵解決する。システムが壊れても、意外と力技でなんとかなる。
  • パッケージ管理外のソフトウェアも、追加のソフトウェアのインストール無しで簡単にインストールできる場合が多い。

欠点

  • パッケージのインストールに時間がかかる。毎回コンパイルするんだから当然だ。
  • なので、コンパイル時間が長いGUIなアプリケーションたちは、使いはじめるまでにかなりの忍耐が必要になる場合がある。Webブラウザやオフィス・スィートなんかは典型例。
  • パッケージをよく理解する必要がある。ある機能を有効にすると、そのせいで依存パッケージが大量にインストールされてしまったり。またはその機能は実験的なもので、まともに起動しなくなったりとか。
  • 何にも考えないでシステムを構築すると、「動作が遅い」「使いたい機能がない」のが普通。
  • 更新をサボると、必ずトラブルが発生する。一気に更新する場合、依存関係やら設定の変更やらでハマる。マシン自体が起動しなくなることなんてザラだ。
  • 要は手間と時間がかかり、かつ知識と経験と速いマシンとトラブルに折れない心が要求されるのだ。
  • そんなディストロは、当然人気がない。

あー。なんか欠点だらけだね。

でも、利点は欠点の裏返し。利点で挙げたようなことを実現するために、どうしても欠点が発生してしまう。

じゃあ、何に使えばいいの?

各種サーバ。これはガチで向いてる。セキュリティと動作の安定性を高めるためにも、最小化原則は重要だ。Gentooはとても向いてる。要らない機能はコンパイルしなきゃいいのだ (もちろん、パッケージ側でそれをサポートしていないといけないけど)。

開発環境VimEmacsを用いたCLI開発環境を使っている人には特に向いていると思う。ほかにも、重要なライブラリ (例えばlibcとかね) において、デバッグ用のシンボル情報を保存しておくと、バグの解消に役立つことがある。Gentooなら、そんなの簡単だ。

勉強用の素材Gentooにはディストロ独自の管理・設定ツールがあんまりない。パッケージ管理ツール (portage) と、機能設定管理ツール (eselect) くらいだろうか。

管理や設定は、パッケージのマニュアル通りに行えばいい。「Gentooだから」この方法でやらなきゃいけない、ってのは、それほどない。

つまり、Gentooで覚えた知識は、他のディストロでもそのまま使える場合が多いってことだ。

あんまり使わない方がいい分野もある

GUI環境。とにかく手間がかかる。依存パッケージも多いし、考えないといけないことが多すぎる。どの機能を有効にして、どの機能を無効にすべきか、とかね。

時間もかかる。GUIアプリケーションは、大規模なものが多い。その場合、コンパイルする時間はとても長くなる。貧弱なマシンなら、1日がかりな場合だって考えられる。

そこまで手間を掛けても、UbuntuLinux Mintなどの「使いやすいデスクトップ環境」を目指しているディストロより使いやすいものにはならない場合が多い。むしろWindowsやMacでいいんじゃないかな?

つまり、実用という観点から見ると、Gentooを使ったデスクトップ環境はパフォーマンスが悪いのです。

あ、でも手間暇かけてカスタマイズしまくったデスクトップ環境を作るのもまたオツなものですよ? 自己満足汁がたくさん分泌されることまちがいなし。

簡単なまとめ

Linuxの各種ディストロには、実現したい目標がある。

Gentooは、「選択する自由の最大化」を目的にしてるように思う。だから、選択基準がないユーザにとっては、非常に使いにくいディストロだ。使えるまでに時間はかかるし、トラブルだって頻発する。

一方、用途がはっきりしていて、選択する基準が明確なユーザにとっては最適かもしれない。最小で、余計なものが含まれず、動作が安定したOSになる可能性が高い。

仮想機械のおかげで、使いたいソフトウェアに応じたOSを利用するのはどんどん手軽になってきている。

別に1つのOSで全てを済まさなきゃいけない理由はないのだ。