ほぼファイルサーバー用途の自宅サーバーで、GentooLinux というちょっとマイナー変わったディストリビューションを使っています。
- 目次 -
利点
- 強力なパッケージ管理システム(Portage)のお陰で、ソースからインストールしても管理が楽チン。
- にもかかわらず、ソースからインストールする際とほぼ同等な柔軟な設定が可能。
- 必要最小限の自動化しかしてないので、インストール時から「何をインストールするか」「どのような設定を行うか」を一つ一つ確認しながら構築するので、自分のマシンがどうなっているかが把握しやすいし、勉強にもなる。
欠点
- 一から全て、ソースからコンパイルするので、インストールや大規模なソフト(Gnome とか)のインストールはムッチャ時間が掛かる。
- 依存関係とか、パッケージ管理は楽だけど、アップデート時に設定ファイルの書式等を理解していないと前に進めない(裏を返せば、だから勉強になる(笑))。
- 他のディストリビューションとは違う、独自な部分(パッケージ管理法や起動initプロセス等)がある(それは良くできており、利点であるのだが、新たに習得する必要がある)。
- Web上の情報は日本語ドキュメントを始め、それなりに充実しているが、日本語書籍は殆ど無い。
で、1、2週間ほど前なのですが、ソフトウェアの各パッケージを最新版にしようとして「依存循環」という状態に陥ってしまい、寝ぼけ頭で対処していたら、誤って sys-devel/binutils という、コンパイルにはほぼ欠かせないソフトウェアをアンインストールしてしまいました。
…… Gentoo で binutils が無かったらダメじゃん(爆)。
一からインストールし直すことも考えましたが、普段とは違う方法で対処することにしました。
実は、Gentoo のパッケージ管理システム「Portage」ではバイナリパッケージのインストールにも対応しており、またバイナリパッケージの作成も可能です。
なので、VirtualBox 上で Gentoo を新規インストールし、そちらでバイナリパッケージを作成して、サーバー機の方でまだ生きてる emerge(Portage のパッケージ管理コマンド)でバイナリパッケージ化した binutils をインストールしてみました。
quickpkg sys-devel/binutils
バイナリパッケージが /usr/portage/packages に作成されるので、それを SCP でサーバー機の同ディレクトリにコピー。
emerge --usepkg sys-devel/binutils
めでたくインストール成功!
VirtualBox への最新版の Gentoo インストールする際に、一応、Portage の振る舞いを決定する make.conf ファイルを可能な限りサーバー機に合わせておく、サーバー全体の profile もサーバー機と同じにする、というところが気を配った点でした。
しかし、復旧には成功しても、「依存循環」は残っています。
これからの脱出方法は色々あるのでまたの機会にまとめたいと思います。
久しぶりに最新版の Gentoo インストール作業をしてみて、Gentoo Handbook が Wiki 化されて、make.conf の記述内容が微妙に進化していたり、ストレージのパーティションを切るのが fdisk コマンドではなく、parted で切るのがデフォルトになっていたり(fdisk についての説明も残ってはいました)で、色々目新しかったけど、その話もまた、次にインストールする機会に。