この章では LFS システムの構築作業を始めます。
パッケージ類のインストール作業は簡単なものです。 インストール手順の説明は、たいていは手短に一般的なものだけで済ますこともできます。 ただ誤りの可能性を極力減らすために、個々のインストール手順の説明は十分に行うことにします。 Linux システムがどのようにして動作しているかを学ぶには、個々のパッケージが何のために用いられていて、なぜユーザー (あるいはシステム) がそれを必要としているのかを知ることが重要になります。
コンパイラーにはカスタマイズ可能な最適化がありますが、これを利用することはお勧めしません。
コンパイラーのカスタマイズ最適化を用いればプログラムが若干速くなる場合もありますが、そもそもコンパイルが出来なかったり、プログラムの実行時に問題が発生したりする場合があります。
もしコンパイラーのカスタマイズ最適化によってパッケージビルドが出来なかったら、最適化をなしにしてもう一度コンパイルすることで解決するかどうかを確認してください。
最適化を行ってパッケージがコンパイル出来たとしても、コードとビルドツールの複雑な関連に起因してコンパイルが適切に行われないリスクをはらんでいます。
また -march
オプションや -mtune
オプションにて指定する値は、本書には明示しておらずテストも行っていませんので注意してください。 これらはツールチェーンパッケージ
(Binutils、GCC、Glibc) に影響を及ぼすことがあります。
最適化オプションを用いることによって得られるものがあったとしても、それ以上にリスクを伴うことがしばしばです。 初めて LFS
構築を手がける方は、最適化オプションをなしにすることをお勧めします。
一方で、各パッケージにおける最適化のデフォルト設定は、そのまま用いることにします。
さらにデフォルトでは有効になっていないものであっても、パッケージが提供する最適化設定を有効にする場合もあります。
パッケージ管理者はそういった設定についてのテストは行っていて、安全だと考えているからです。
したがってその設定を利用しても、ビルドに失敗することはないはずです。 一般的にデフォルトの設定では -O2
または -O3
を有効にしています。
つまりビルドされる結果のシステムは、他のカスタマイズ最適化オプションがなくても、充分に早く動作し、同時に安定しているはずです。
各ページではインストール手順の説明よりも前に、パッケージの内容やそこに何が含まれているかを簡単に説明し、ビルドにどれくらいの時間を要するか、ビルド時に必要となるディスク容量はどれくらいかを示しています。 またインストール手順の最後には、パッケージがインストールするプログラムやライブラリの一覧を示し、それらがどのようなものかを簡単に説明しています。
第 8 章 にて導入するパッケージにおいて SBU 値と必要ディスク容量には、テストスイート実施による時間や容量をすべて含んでいます。 なお SBU 値は特に断りのない限り、4 CPU コア(-j4)を用いて算出しています。
LFS 編集者は全般にスタティックライブラリは作らないものとしています。 スタティックライブラリのほとんどは、現在の Linux システムにとってはもはや古いものになっています。 スタティックライブラリをリンクすると障害となることすらあります。 例えばセキュリティ問題を解決するためにライブラリリンクを更新しなければならなくなったら、スタティックライブラリにリンクしていたプログラムはすべて再構築しなければなりません。 したがってスタティックライブラリを使うべきかどうかは、いつも迷うところであり、関連するプログラム (あるいはリンクされるプロシージャ) であってもどちらかに定めなければなりません。
本章の手順では、スタティックライブラリのインストールはたいてい行わないようにしています。 多くのケースでは configure に対して --disable-static
を与えることで実現しますが、これができない場合には他の方法を取ります。 ただし Glibc や GCC
などにおいては、パッケージビルドの手順にとって重要な機能となるため、スタティックライブラリを利用します。
ライブラリに関してのより詳細な議論については BLFS ブックの Libraries: Static or shared? を参照してください。