注意: この文書は一応 Gentoo 公式 に取り込まれましたが、英語版が消されていることからも判るように今では使われていない手順です。
現在の手順は(日本語訳はまだありませんが) Gentoo Prefix Bootstrap Process を見てください。
(2011-11-14 追記)
(注: これは現時点(2012-05-05)でのGentoo Prefix Bootstrap Process for Mac OS X の翻訳です。
翻訳を見てインストールしていて行き詰まったら素直に原文を見るようにしましょう。)
OS X でブートストラップ
Mac OS X システムで Gentoo Prefix をブートストラップする方法 はじめに
Apple Mac OS Xは当初Gentoo Portageのメインツリーでppc-macos
キーワードの下サポートされていました。
しかし、そこで取られたアプローチはあまりにも多くの問題を引き起こし、
そのことがprefix化されたPortageを作り出す隠れた動機となりました。
OS Xでのブートストラップは比較的単純で、
それはシステム自体が素早くスピードを上げる大部分のツールを提供しているからです。
ブートストラップ
前提条件として、Xcodeの最新版をインストールしておかなければなりません。
Xcodeはコンパイラ・コレクションを提供します。
ブートストラップはこれ無しでは(まだ)できるようになっていません。
もし最新版以外のXcodeで問題が起こった場合には、まずはアップデートを試みて下さい。
最初のステップはインストールするパスを選択することです。
これ以降、このパスのことを「Prefixパス」と書きます。
その値はEPREFIX 変数に入ります。
Prefixパスをどこにするか迷ったら
$HOME/Gentoo や $HOME/Library/Gentoo
にしてみてはいかがでしょうか。
どこに決めたにしろ、その値を環境変数に設定することを忘れないで下さい。
EPREFIX 変数のエクスポート
$ export EPREFIX="$HOME/Gentoo"
tcshユーザーは代わりにsetenv EPREFIX "$HOME/Gentoo" を使います。
次に、以下のこれからPrefixになるパスをPATH 環境変数に追加します。
$EPREFIX/bin 、$EPREFIX/usr/bin 、
$EPREFIX/tmp/bin 、
$EPREFIX/tmp/usr/bin 。
PrefixパスをPATHに追加
$ export PATH="$EPREFIX/usr/bin:$EPREFIX/bin:$EPREFIX/tmp/usr/bin:$EPREFIX/tmp/bin:$PATH"
インストールしたいのが64ビット版のPrefixならば、CHOST 変数を設定します。
Leopardではx86_64-apple-darwin9 、
Snow Leopardではx86_64-apple-darwin10 です。
もし、Lion上で32ビット版のPrefixをインストールしたいならば、
CHOST 変数に設定するのはi686-apple-darwin11 です。
これらの設定は64ビット版(または32ビット版)Prefixにすることが必要なときだけです!
さて、パスを設定したところで、ブートストラップ・スクリプトをhttp://overlays.gentoo.org/proj/alt/browser/trunk/prefix-overlay/scripts/bootstrap-prefix.sh?format=txt
からダウンロードするところから始めましょう。
ブートストラップ・スクリプトを置いたディレクトリから次のコマンドたちを実行します。
ブートストラップを使って
$ chmod 755 bootstrap-prefix.sh
$ ./bootstrap-prefix.sh $EPREFIX tree
$ ./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 coreutils
$ ./bootstrap-prefix.sh $EPREFIX/tmp findutils
$ ./bootstrap-prefix.sh $EPREFIX/tmp tar
$ ./bootstrap-prefix.sh $EPREFIX/tmp patch259
$ ./bootstrap-prefix.sh $EPREFIX/tmp grep
$ ./bootstrap-prefix.sh $EPREFIX/tmp gawk
$ ./bootstrap-prefix.sh $EPREFIX/tmp bash
$ ./bootstrap-prefix.sh $EPREFIX portage
wget 、sed 、python などが$EPREFIX/tmp
にインストールされたことを心に留めておきましょう。
ブートストラップ・スクリプトは$EPREFIX ディレクトリを適切に準備し、
Portageツリーのスナップショットをダウンロードして展開し、
Portageをダウンロードしてインストールします。
その後でいくつかのまともなデフォルトを設定します。
いくつかの新しいアプリケーションをインストールしたので、
bashに全てのパスを見直すように指示します。
bashのリハッシュ
$ hash -r
tcshユーザーはrehash コマンドを使いましょう。
さらにいくつかのemergeの途中で見ることになるかもしれない沢山のエラーや警告に対処するのに必要なツールを追加していきます。
emerge sed
$ emerge --oneshot sed
次に、Portageがどっぷり依存しているbash をemergeします。
ダウンロード・マネージャーwget も同様です。
現段階ではまだ依存しているものまでコンパイルすることができないので、
しばらく無視しておくことにします。
pax-utilsはPortageがインストールするバイナリの正しさを調べられるようにしてくれます。
emerge bash, pax-utils, wget
$ emerge --oneshot --nodeps bash (シェバン /bin/sh であるスクリプトをインストールする依存を回避)
$ emerge --oneshot pax-utils
$ emerge --oneshot --nodeps xz-utils
$ emerge --oneshot --nodeps "<wget-1.13.4-r1" (#393277 が修正されるまで)
ブートストラップ手順の最後まで"1 config files in XXX need updating"
というメッセージが出てきても無視しておいても安全です。
続いて、コンパイラとリンカをemergeし、
Gentoo Prefix環境を使えるように準備します。
emergeするパッケージにはbaselayout が含まれます。
いくつかの(沢山ではないにしても)Gentooシステムに含まれるスクリプトやツールは
Gentoo風色付けを使った全てのコミュニケーションにbaselayout パッケージが
使えることを仮定しています。
コンパイラ及びリンカに必要なもののemerge
$ emerge --oneshot --nodeps sys-apps/baselayout-prefix
$ emerge --oneshot --nodeps sys-devel/m4
$ emerge --oneshot --nodeps sys-devel/flex
$ emerge --oneshot --nodeps sys-devel/bison
$ emerge --oneshot --nodeps sys-devel/binutils-config
Xcodeのバージョンの違いにより、
以下の手順に違いが出ますのでgcc --version の出力をよく見て下さい。
一行目に出て来るバージョンが4.2.1ならば最新のbinutils-apple
をemergeする必要があります。
そうでなければ4.0.1と出力されているはずですがこの場合
=binutils-apple-3.2 をemergeしなければなりません。
リンカのemerge
$ emerge --oneshot --nodeps "=sys-devel/binutils-apple-3.2" (gcc 4.0.1の場合)
$ emerge --oneshot --nodeps sys-devel/binutils-apple (gcc 4.2.1の場合)
それではコンパイラに進みましょう。
コンパイラのemerge
$ emerge --oneshot --nodeps sys-devel/gcc-config
$ emerge --oneshot --nodeps sys-devel/gcc-apple
Prefixに次々とツールが入れていきましょう。
この段階では、もう依存を無視し続けないので、多くのパッケージがemergeされます。
ゆっくりとですがPrefixもだんだんと頑健なものになってきます。
いくつかのツールのemerge
$ emerge --oneshot sys-apps/coreutils
$ emerge --oneshot sys-apps/findutils
$ emerge --oneshot '<app-arch/tar-1.26-r1'
$ emerge --oneshot sys-apps/grep
$ emerge --oneshot sys-devel/patch
$ emerge --oneshot sys-apps/gawk
$ emerge --oneshot sys-devel/make
$ emerge --oneshot --nodeps sys-apps/file
$ emerge --oneshot --nodeps app-admin/eselect
そろそろPortageが必要とするプログラムが一揃い揃ったので、
ブートストラップされたPortageを正しい位置にインストールされたPortageで、
Portageそのものを使って置き換えます。
またここでいくつかの依存パッケージが初めてemergeされます。
たとえばPortageの記述言語であるpython などです。
一時的にPortageに対しブートストラップされたPortageを上書きしても良いと伝える必要があります。
emerge portage
$ env FEATURES="-collision-protect" emerge --oneshot sys-apps/portage
さあブートストラップした全てをemergeしましたので、
要らなくなった一時的なディレクトリを消しそこにあるものを使うのを止めましょう。
tmpディレクトリの消去
$ rm -Rf $EPREFIX/tmp/*
$ hash -r
さらにemergeを続けていく前に、ツリーを更新しましょう。
ツリーの更新には次のようにします。
ツリーの更新
$ emerge --sync
もし、rsyncでの通信が遮断されるファイアウォールの中にいるならば、
代わりに${EPREFIX}/usr/sbin/emerge-webrsyncを実行してみて下さい。
次に、Prefixのインストールを仕上げるのに最終的に必要なシステム・インストールを完遂する全てのパッケージをPortageにemergeさせます。
emerge system
$ env USE=-git emerge -u system
もうすぐ自分のものになるPrefixに自分好みな設定をするには今が絶好のタイミングです。
設定にはUSEフラグ、CFLAGS 、MAKEOPTS を
$EPREFIX/etc/portage/make.conf をカスタマイズすることも含まれます。
CFLAGS に関しては保守的に!
下のコードは例に過ぎませんので、こんな感じという雰囲気だけ伝えるものです。
Prefixインストールのカスタマイズ例
$ echo 'USE="unicode nls"' >> $EPREFIX/etc/portage/make.conf
$ echo 'CFLAGS="-O2 -pipe <my-cpu-flags>"' >> $EPREFIX/etc/portage/make.conf
$ echo 'CXXFLAGS="${CFLAGS}"' >> $EPREFIX/etc/portage/make.conf
上の例の中の<my-cpu-flags> は自分のCPUに合わせて置き換える必要があります。
IntelベースのMacユーザー(たとえばMacBookやCoreDuo)はSSE命令が有効化されていないために起こるコンパイルエラーを避けるためにここに少なくとも-march=prescott
と書いて置いてください。
Core2Duoユーザーは-march=core2 を使えます。
PPCユーザーはCPUの別名をCPUに特化したチューニングを有効にするのに使えます。
例えば-mcpu=G5 -mtune=G5 のようにします。
再ビルドを自力で賄えるだけのものが揃ったので、
Prefixシステムのインストールの最後の段階を始められます。
この最後の段階ではシステムの全てを再コンパイルします。
ただし今までと違って全てのパッケージがホスト・システムのツールではなく
Prefixにあるツールを使ってコンパイルできるようになっています。
最後のsystemインストールをします
$ emerge -e system
system のemergeがつつがなく終われば、
Prefixは正常にできあがったことになり、
あとはPrefixツリーから好みで選んだものを何でもemergeすることができるようになります。
Prefixの使用
ブートストラップの終わったPrefix環境を使うのに一番良いのは
パスやその他の環境変数が正しく設定されたPrefixのシェルを立ち上げることです。
これを簡単に行うために、ちょっとした補助スクリプトがブートストラップ・スクリプトによって作られています。
startscriptの作成
$ cd $EPREFIX/usr/portage/scripts
$ ./bootstrap-prefix.sh $EPREFIX startscript
これを実行すると、$EPREFIX にstartprefix スクリプトができます。
このスクリプトはどこに動かしても構いません(たとえばホームディレクトリとか)。
スクリプトを実行するとPrefixシェルに移ることになり、
そこではたとえばemerge が直ちに実行できるようになっています。
Prefixを楽しみましょう!
|