この章では基本的な Linux システム構築のためにダウンロードするべきパッケージの一覧を示します。 各パッケージのバージョンは動作が確認されているものを示しており、本書ではこれに基づいて説明します。 ここに示すバージョンよりも新しいものは使わないようお勧めします。 あるバージョンでビルドしたコマンドが、新しいバージョンでも動作する保証はないからです。 最新のパッケージの場合、何かの対処を要するかもしれません。 そのような対処方法は本書の開発版において開発され安定化が図られるかもしれません。
ダウンロードサイトは常にアクセス可能であるとは限りません。 本書が提供された後にダウンロードする場所が変更になっていたら Google (//www.google.com/) を使って検索してみてください。 たいていのパッケージを見つけ出すことが出来るはずです。 それでも見つけられなかったら //www.linuxfromscratch.org/lfs/packages.html#packages に示されている方法に従って入手してください。
ダウンロードしたパッケージやパッチは、ビルド作業を通じて常に利用可能な場所を選んで保存しておく必要があります。
またソース類を伸張してビルドを行うための作業ディレクトリも必要です。 そこで本書では $LFS/sources
ディレクトリを用意し、ソースやパッチの保存場所とし、そこでビルドを行う作業ディレクトリとします。 このディレクトリにしておけば LFS
パーティションに位置することから LFS ビルドを行う全工程において常に利用することが出来ます。
ダウンロードを行う前にまずはそのようなディレクトリを生成します。 root
ユーザーとなって以下のコマンドを実行します。
mkdir -v $LFS/sources
このディレクトリには書き込み権限とスティッキーを与えます。 「スティッキー (Sticky) 」は複数ユーザーに対して書き込み権限が与えられても、削除については所有者しか実行出来ないようにします。 以下のコマンドによって書き込み権限とスティッキーを定めます。
chmod -v a+wt $LFS/sources
パッケージとパッチのダウンロードを簡単に行う方法として wget-list を利用する方法があります。 これは以下のように wget の入力引数に指定し利用します。
wget -i wget-list -P $LFS/sources
オリジナルの LFS ブックでは、wget-list 内に含まれる、各種パッケージの入手 URL が主に米国サイトとなっています。 一方、日本国内にて作業する方であれば、例えば GNU のパッケージ類は国内に数多くのミラーサイトが存在するため、そちらから取得するのが適切でしょう。 これはネットワークリソースを利用する際のマナーとも言えるものです。 堅苦しい話をするつもりはありません。 国内サイトから入手することにすればダウンロード速度が断然早くなります。 メリットは大きいと思いますのでお勧めします。
国内から入手可能なものは国内から入手することを目指し、訳者は以下の手順により wget-list を書き換えて利用しています。 一例として国内には理化学研究所のサイト (ftp.riken.jp) があります。 そこでは GNU パッケージ類がミラー提供されています。 そこで wget-list にて ftp.gnu.org を指し示している URL を ftp.riken.jp に置き換えます。 また同じ方法で Linux カーネル、Perl、Vim の入手先も変更します。
mv wget-list{,.orig}
cat > wget-list-ja.sed << "EOF"
s|ftp\.gnu\.org/gnu/|ftp.riken.jp/GNU/ftp/gnu/|g
s|www\.kernel\.org/pub/linux/|ftp.riken.jp/Linux/kernel.org/linux/|g
s|www\.cpan\.org|ftp.riken.jp/lang/CPAN|g
s|ftp\.vim\.org|ftp.jp.vim.org|g
EOF
sed -f wget-list-ja.sed wget-list.orig > wget-list
rm wget-list-ja.sed
上記はあくまで一例です。しかもすべてのパッケージについて、国内サイトからの入手となるわけではありません。 ただし上記を行うだけでも、大半のパッケージは国内サイトを向くことになります。 上記にて国内のミラーサイトは、ネットワーク的に "より近い" ものを選んでください。 サイトを変えた場合は、パッケージの URL が異なることが多々あるため、適宜 sed 置換内容を書き換えてください。
注意する点として各パッケージが更新されたばかりの日付では、国内ミラーサイトへの同期、反映が間に合わず、ソース類が存在しないことが考えられます。 その場合にはパッケージ取得に失敗してしまいます。 そこで wget-list と wget-list.orig を順に利用し、かつ wget コマンドにて -N オプションを使って (取得済のものはスキップするようにして) 以下のコマンドを実行すれば、確実にすべてのパッケージを入手することができます。
wget -N -i wget-list -P $LFS/sources wget -N -i wget-list.orig -P $LFS/sources
さらに LFS-7.0 からは md5sums
というファイルを用意しています。 このファイルは、入手した各種パッケージのファイルが正しいことを確認するために用いることができます。
このファイルを $LFS/sources
に配置して以下を実行してください。
pushd $LFS/sources md5sum -c md5sums popd