Hello Gentoo Prefix

自宅のMac環境へGentoo Prefixをインストールしてみた。以下はそのときのメモ。

Gentoo Prefixの入り口(なのかな)。http://www.gentoo.org/proj/en/gentoo-alt/prefix/index.xml

MacOSXのひとはここの手順に従ってインストールすればOK。http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap-macos.xml

Xcodeが必要らしいのでインストールした。

Gentoo Prefixのインストール先、$HOME/Gentooとかがオススメみたい。

$ export EPREFIX="$HOME/Gentoo"

インストール時に使用するのか、先にパスを通しておく必要があるみたい。

$ export PATH="$EPREFIX/usr/bin:$EPREFIX/bin:$EPREFIX/tmp/usr/bin:$EPREFIX/tmp/bin:$PATH"

Snow Leopard上で64bitでビルドしたいならCHOSTにx86_64-apple-darwin10をセットしてねとあるのだが、32bitでいいのでセットしない。

その後、bootstrap-prefix.shを落としてくる。実行権限を付与するのも忘れずに。

$ curl -o /tmp/bootstrap-prefix.sh http://overlays.gentoo.org/proj/alt/browser/trunk/prefix-overlay/scripts/bootstrap-prefix.sh?format=txt
$ chmod 755 /tmp/bootstrap-prefix.sh

よくわからないながらも手順通りにtreeをブートストラップ。prefix-overlayなるものをダウンロードしてからどこかへ展開している模様。コマンド実行後に$HOMEを見てみると、$HOME/Gentoo以下にディレクトリツリーが出来ていた。

./bootstrap-prefix.sh $EPREFIX tree

その後、インストールに必要なファイル達を~/Gentoo/temp以下へじゃんじゃんインストール。

$ ./bootstrap-prefix.sh $EPREFIX/tmp make
$ ./bootstrap-prefix.sh $EPREFIX/tmp wget
$ ./bootstrap-prefix.sh $EPREFIX/tmp sed
$ ./bootstrap-prefix.sh $EPREFIX/tmp python
$ ./bootstrap-prefix.sh $EPREFIX/tmp coreutils6
$ ./bootstrap-prefix.sh $EPREFIX/tmp findutils
$ ./bootstrap-prefix.sh $EPREFIX/tmp tar15
$ ./bootstrap-prefix.sh $EPREFIX/tmp patch9
$ ./bootstrap-prefix.sh $EPREFIX/tmp grep
$ ./bootstrap-prefix.sh $EPREFIX/tmp gawk
$ ./bootstrap-prefix.sh $EPREFIX/tmp bash

ブートストラップの最終走者、portageをインストール。

$ ./bootstrap-prefix.sh $EPREFIX portage

portageのインストールが終わったのでリハッシュしておく。

hash -r

どんどんemerge。

$ emerge --oneshot sed
$ emerge --oneshot pax-utils
$ emerge --oneshot --nodeps wget
$ emerge --oneshot bash
$ emerge --oneshot --nodeps baselayout-prefix
$ emerge --oneshot --nodeps xz-utils
$ emerge --oneshot --nodeps m4
$ emerge --oneshot --nodeps flex
$ emerge --oneshot --nodeps bison
$ emerge --oneshot --nodeps binutils-config
$ emerge --oneshot --nodeps binutils-apple
$ emerge --oneshot --nodeps gcc-config
$ emerge --oneshot --nodeps gcc-apple
$ emerge --oneshot coreutils
$ emerge --oneshot findutils
$ emerge --oneshot tar
$ emerge --oneshot grep
$ emerge --oneshot patch
$ emerge --oneshot gawk
$ emerge --oneshot make
$ emerge --oneshot --nodeps file
$ emerge --oneshot --nodeps eselect
$ emerge --oneshot pax-utils

次にportageを置き換える。

env FEATURES="-collision-protect" emerge --oneshot portage

portageを置き換えることでブートストラップ作業は終了したので、不要なファイルを削除する。

$ rm -Rf $EPREFIX/tmp/*
$ hash -r

(なんのことだかよく分かってないのだけど)treeをアップデートする。

$ emerge --sync

systemをemergeする(?)

$ emerge -u system

ここで必要であればmake.confを設定する。ここはよく分かってないのでmgikenさんのところ(http://mgiken.com/2009/07/10/011617
)からのコピペ。

$ echo 'USE="unicode nls"' >> $EPREFIX/etc/make.conf
$ echo 'CFLAGS="-O2 -pipe -march=nocona"' >> $EPREFIX/etc/make.conf
$ echo 'CXXFLAGS="${CFLAGS}"' >> $EPREFIX/etc/make.conf
$ emerge -e system

final system installation(?)を行ってインストール完了。

$ emerge -e system

これでインストールは完了。

ためしにMercurialをインストールしてみる。

$ emerge mercurial
$ hash -r
$ hg --version

おー、うまくインストールできたみたい。

まとめ

インストール後の空き領域は43.86GB。インストール前の空き領域は46.85GBだったので、ちょうど3GB使った計算。思ったよりもディスクを食うのだなーという感想。

インストールはメモを取りながら1コマンドずつ実行していったので手間と時間が結構かかったけど、この操作をシェルスクリプトとしてまとめてしまえば手間はかからない。もう一台のMacシェルスクリプトを作ってインストールしてみたのだけど、夜寝る前にしかけたら朝起きたときには終わってた。会社のマシンでやる場合は就業後にしかけると出社するころには終わってるんじゃないかしら。

Gentoo Prefixをインストールしてみて実際のGentoo Linuxにも興味がわいてきた。今度仮想環境を作って試してみたいと思う。configure && make && make installは男のロマンだよ。

「emerge 」以外はさっぱり使い方がわかってないので、あとは少しずつ覚えていこうと思うよ。