既に説明しているように LFS が目指すのは、完成した形での実用可能な基盤システムを構築することです。 LFS に含まれるパッケージ群は、パッケージの個々を構築していくために必要となるものばかりです。 そこからは最小限の基盤となるシステムを作り出します。 そしてユーザーの望みに応じて、より完璧なシステムへと拡張していくものとなります。 LFS は極小システムを意味するわけではありません。 厳密には必要のないパッケージであっても、重要なものとして含んでいるものもあります。 以下に示す一覧は、本書内の各パッケージの採用根拠について説明するものです。
Autoconf
このパッケージは、以下に示すようなシェルスクリプトを生成するプログラムを提供します。 つまり開発者が意図しているテンプレートに基づいて、ソースコードを自動的に設定する (configure する) ためのシェルスクリプトです。 特定のパッケージのビルド方法に変更があった場合は、パッケージ再構築を行うことになるため、その場合に本パッケージが必要となります。
Automake
このパッケージは、テンプレートとなるファイルから Makefile を生成するためのプログラムを提供します。 特定のパッケージのビルド方法に変更があった場合は、パッケージ再構築を行うことになるため、その場合に本パッケージが必要となります。
Bash
このパッケージは、システムとのインターフェースを実現する Bourne シェルを提供し、LSB コア要件を満たします。 他のシェルを選ばずにこれを選ぶのは、一般的に多用されていることと、基本的なシェル関数においての拡張性が高いからです。
Binutils
このパッケージは、リンカ、アセンブラのような、オブジェクトファイルを取り扱うプログラムを提供します。
Bison
このパッケージは yacc (Yet Another Compiler Compiler) の GNU バージョンを提供します。 LFS において利用するプログラムの中に、これを必要とするものがあります。
Bzip2
このパッケージは、ファイルの圧縮、伸張 (解凍) を行うプログラムを提供します。 これは LFS パッケージの多くを伸張 (解凍) するために必要です。
Coreutils
このパッケージは、ファイルやディレクトリを参照あるいは操作するための数多くの基本的なプログラムを提供します。
DejaGNU
このパッケージは、他のプログラムをテストするフレームワークを提供します。 これは一時的なツールチェーンプログラムをインストールする際にだけ必要となります。
Diffutils
このパッケージは、ファイルやディレクトリ間の差異を表示するプログラムを提供します。
Expect
このパッケージは、スクリプトで作られた対話型プログラムを通じて、他のプログラムとのやりとりを行うプログラムを提供します。 通常は他のパッケージをテストするために利用します。 本書では一時的なツールチェーンの構築時にしかインストールしません。
E2fsprogs
このパッケージは ext2, ext3, ext4 の各ファイルシステムを取り扱うユーティリティを提供します。 各ファイルシステムは Linux がサポートする一般的なものであり、十分なテストが実施されているものです。
File
このパッケージは、指定されたファイルの種類を判別するユーティリティプログラムを提供します。
Findutils
このパッケージは、ファイルシステム上のファイルを検索するプログラムを提供します。
Flex
このパッケージは、テキスト内の特定パターンの認識プログラムを生成するユーティリティを提供します。 これは lex (字句解析; lexical analyzer) プログラムの GNU 版です。 LFS 内の他のパッケージの中にこれを必要としているものがあります。
Gawk
このパッケージはテキストファイルを操作するプログラムを提供します。 プログラムは GNU 版の awk (Aho-Weinberg-Kernighan) です。
Gcc
これは GNU コンパイラコレクションパッケージです。 C コンパイラと C++ コンパイラを含みます。また LFS ではビルドしないコンパイラも含まれています。
GDBM
このパッケージは GNU データベースマネージャライブラリを提供します。 LFS が扱う Man-DB パッケージがこれを利用しています。
Gettext
このパッケージは、各種パッケージが国際化を行うために利用するユーティリティやライブラリを提供します。
Glibc
このパッケージは C ライブラリです。Linux 上のプログラムはこれがなければ動作させることができません。
GMP
このパッケージは数値演算ライブラリを提供するもので、任意精度演算 (arbitrary precision arithmetic) 関数を含みます。 これは GCC をビルドするために必要です。
Grep
このパッケージはファイル内を検索するプログラムを提供します。
Groff
このパッケージは、テキストを処理し整形するプログラムをいくつか提供します。 重要なものプログラムとして man ページを生成するものを含みます。
GRUB
これは Grand Unified Boot Loader です。 ブートローダーとして利用可能なものの中でも、これが最も柔軟性に富むものです。
Gzip
このパッケージは、ファイルの圧縮と伸張 (解凍) を行うプログラムを提供します。
Iana-etc
このパッケージは、ネットワークサービスやプロトコルに関するデータを提供します。 ネットワーク機能を適切に有効なものとするために、これが必要です。
Inetutils
このパッケージは、ネットワーク管理を行う基本的なプログラム類を提供します。
IProute2
このパッケージは、IPv4、IPv6 による基本的な、あるいは拡張したネットワーク制御を行うプログラムを提供します。 IPv6 への対応があることから、よく使われてきたネットワークツールパッケージ (net-tools) に変わって採用されました。
Kbd
このパッケージは、米国以外のキーボードに対してのキーテーブルファイルやキーボードユーティリティを提供します。
Less
このパッケージはテキストファイルを表示する機能を提供するものであり、表示中にスクロールを可能とします。
Libtool
このパッケージは GNU の汎用的なライブラリに対してのサポートスクリプトを提供します。 これは、複雑な共有ライブラリの取り扱いを単純なものとし、移植性に優れた一貫した方法を提供します。 LFS パッケージのテストスイートにおいて必要となります。
Linux Kernel
このパッケージは "オペレーティングシステム" であり GNU/Linux 環境における Linux です。
M4
このパッケージは汎用的なテキストマクロプロセッサであり、他のプログラムを構築するツールとして利用することができます。
Make
このパッケージは、パッケージ構築を指示するプログラムを提供します。 LFS におけるパッケージでは、ほぼすべてにおいて必要となります。
Man-DB
このパッケージは man ページを検索し表示するプログラムを提供します。 man パッケージではなく本パッケージを採用しているのは、その方が国際化機能が優れているためです。 このパッケージは man プログラムを提供しています。
Man-pages
このパッケージは Linux の基本的な man ページを提供します。
Module-Init-Tools
このパッケージは Linux カーネルモジュールを管理するのに必要なプログラムを提供します。
MPFR
このパッケージは倍精度演算 (multiple precision) の関数を提供します。 GCC パッケージがこれを必要としています。
Ncurses
このパッケージは、端末に依存せず文字キャラクタを取り扱うライブラリを提供します。 メニュー表示時のカーソル制御を実現する際に利用されます。
Patch
このパッケージは、パッチ ファイルの適用により、特定のファイルを修正したり新規生成したりするためのプログラムを提供します。 パッチファイルは diff プログラムにより生成されます。 LFS パッケージの中には、構築時にこれを必要とするものがあります。
Perl
このパッケージは、ランタイムに利用されるインタープリタ言語 PERL を提供します。
Pkg-config
このパッケージは、configure や make を行う際に、ビルドツールに対してインクルードパスやライブラリパスを受け渡すツールプログラムを提供します。 LFS パッケージでは、ほとんどがこれを必要としています。
Procps
このパッケージは、プロセスの監視を行うプログラムを提供します。
Psmisc
このパッケージは、実行中のプロセスに関する情報を表示するプログラムを提供します。
Readline
このパッケージは、コマンドライン上での入力編集や履歴管理を行うライブラリを提供します。 これは Bash が利用しています。
Sed
このパッケージは、テキストの編集を、テキストエディタを用いることなく可能とします。 LFS パッケージにおける configure スクリプトは、たいていこれを必要としています。
Shadow
このパッケージは、セキュアな手法によりパスワード制御を行うプログラムを提供します。
Sysklogd
このパッケージは、システムメッセージログを扱うプログラムを提供します。 例えばカーネルが出力するログや、デーモンプロセスが異常発生時に出力するログなどです。
Sysvinit
このパッケージは init プログラムを提供します。 これは Linux システム上のすべてのプロセスの基点となるものです。
Tar
このパッケージは、アーカイブや圧縮機能を提供するもので LFS が扱うすべてのパッケージにて利用されています。
Tcl
このパッケージはツールコマンド言語 (Tool Command Language) を提供します。 LFS が扱うパッケージにてテストスイートの実行に必要となります。 これは一時的なツールチェーンの構築時にのみインストールします。
Texinfo
このパッケージは Info ページに関しての入出力や変換を行うプログラムを提供します。 LFS が扱うパッケージのインストール時には、たいてい利用されます。
Udev
このパッケージはデバイスノードの動的生成を行うプログラムを提供します。 /dev ディレクトリに、デバイスを静的にいくつも作り出す方法を取らないためのものです。
Util-linux-ng
このパッケージは数多くのユーティリティプログラムを提供します。 その中には、ファイルシステムやコンソール、パーティション、メッセージなどを取り扱うユーティリティがあります。
Vim
このパッケージはテキストエディタを提供します。 これを採用しているのは、従来の vi エディタとの互換性があり、しかも数々の有用な機能を提供するものだからです。 テキストエディタは個人により好みはさまざまですから、もし別のエディタを利用したいなら、そちらを用いても構いません。
Zlib
このパッケージは、圧縮や解凍の機能を提供するもので、他のプログラムがこれを利用しています。