残るツール類をビルドするために必要なパッケージは、ここまでにすべてビルドしました。 そこで chroot
環境に入って、残りの一時的ツールをインストールしていきます。 この環境は、最終システムに向けたインストールを行う際にも用います。
root ユーザーになって以下のコマンドを実行します。 chroot
環境内は、この時点では一時的なツール類のみが利用可能な状態です。
chroot "$LFS" /usr/bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \
/bin/bash --login
env コマンドの -i パラメーターは、chroot
環境での変数定義をすべてクリアするものです。 そして HOME,
TERM, PS1,
PATH という変数だけここで定義し直します。 TERM=$TERM は chroot 環境に入る前と同じ値を
TERM 変数に与えます。 この設定は vim や less
のようなプログラムの処理が適切に行われるために必要となります。 これ以外の変数として CFLAGS や CXXFLAGS
などが必要であれば、ここで定義しておくと良いでしょう。
ここから先は LFS 変数は不要となります。 すべての作業は LFS
ファイルシステム内で行っていくことになるからです。 起動される Bash シェルは $LFS ディレクトリがルート (/
ディレクトリ) となって動作します。
/tools/bin が PATH 内には存在しません。 つまりクロスチェーンは chroot
環境内ではもはや利用しないということです。
bash のプロンプトに
I have no name! と表示されますがこれは正常です。
この時点ではまだ /etc/passwd を生成していないからです。
本章のこれ以降と次章では、すべてのコマンドを chroot 環境内にて実行することが必要です。 例えばシステムを再起動する場合のように chroot 環境からいったん抜け出した場合には、「/dev のマウントと有効化」と 「仮想カーネルファイルシステムのマウント」にて説明した仮想カーネルファイルシステムがマウントされていることを確認してください。 そして chroot 環境に入り直してからインストール作業を再開してください。