Linux from Scratch
![]() |
開発者 | ジェラルド・ビークマンズなど |
---|---|
開発状況 | 開発中 |
ソースモデル | オープンソース |
初版 | 1999年12月 |
最新安定版 |
12.3[1] ![]() |
アップデート方式 | ソースベース |
パッケージ管理 | なし |
プラットフォーム | IA-32, x86-64[2] |
カーネル種別 | モノリシック |
既定のUI | キャラクタユーザインタフェース |
ライセンス | 主にCC BY-NC-SA [3]とMIT License |
ウェブサイト |
linuxfromscratch |
Linux From Scratch (リナックス フロム スクラッチ、LFS) は、ユーザが自分自身で「ゼロから(from Scratch、プログラミング言語のScratchではない)」Linuxシステムをビルドする、という一風変わった特徴を主旨とする、一種のLinuxディストリビューションである。また、ジェラルド・ビークマンズによる本のタイトルでもある。
最初のインストール(クリーンインストール)に、Live CDのようなライブイメージとバイナリパッケージを使用し、最低限の機能が備わったシステムを一気に用意してしまう一般的なディストリビューションとは異なり、全てをソースコードとして入手し、一種のクロスビルドによってシステムを構築する。
派生プロジェクト
[編集]Linux From Scratchでは、すべてのコンポーネントを手動でビルドすることにより、Linuxシステムをインストールする。当然、これはコンパイル済みのLinuxディストリビューションをインストールするよりもはるかに長いプロセスである。Linux From Scratchサイトによると、この方法の利点は、コンパクトで柔軟性があり、安全なシステムであることと、Linuxベースのオペレーティングシステムの内部動作をより深く理解できることである[4]。
LFSを小さく、焦点を絞ったものにするために、Beyond Linux From Scratch (BLFS)という書籍が作成された。この書籍では、LFSで作成された基本的なLinuxシステムをさらに拡張する方法が説明されている。この書籍では、X Window System、デスクトップ環境、KDE、GNOME、Xfce、LXDE)、ウェブブラウザ、プログラミング言語とツール、マルチメディアソフトウェア、ネットワーク管理およびシステム管理ツールなど、システムへの追加機能を紹介し、読者をガイドする。リリース5.0以降、BLFS書籍バージョンはLFS書籍バージョンと一致している[5]。
Cross Linux From Scratch (CLFS)という本は、Linuxを実行できるもののLinuxをコンパイルするために必要なリソースがないヘッドレスシステムや組み込みシステム向けのコンパイルを含むクロスコンパイルに焦点を当てている。CLFSは幅広いプロセッサをサポートし、クロスビルドツールチェーン、マルチライブラリサポート(32ビットと64ビットのライブラリを並列で使用)、Itanium、SPARC、MIPS、Alphaなどの代替命令セットアーキテクチャなど、LFSの本には含まれていない高度なテクニックに対応している。
Linux From Scratchプロジェクトは、BitBakeと同様に、Raspberry PiやBeagleBoardなどのARM組み込みシステム向けのLinuxのクロスコンパイルもサポートしている[6][7]。
Hardened Linux From Scratch (HLFS)という本は、ハードニングされたカーネルパッチ、強制アクセス制御ポリシー、スタック破壊保護、アドレス空間配置のランダム化などのセキュリティ強化に焦点を当てている。セキュリティ重視のオペレーティングシステムを作成するという主な目的の他に、HLFSにはセキュリティ教育ツールになるという副次的な目標があった。2011年以降更新されておらず、2025年2月17日現在、HLFSの本はLFSサイトから消えている。
Automated Linux From Scratch (ALFS)は、LFSシステムの作成プロセスを自動化するように設計されたプロジェクトである。LFSおよびBLFSの本を何度も読み、作業量を減らしたいユーザーを対象としている。2つ目の目標は、LFSおよびBLFSブックのXMLソースから指示を直接抽出して実行することにより、LFSおよびBLFSブックのテストとして機能することである。
手順
[編集]まず、現在動作しているLinuxシステムを用意する。その中に、クロスコンパイルの準備の要領で[注釈 1]ビルド環境を用意し、カーネルやカーネルモジュール等をはじめ、いわゆるベースシステム等と呼ばれるシステムソフトウェア類をビルドする。
次に、インストール対象となるマシンのためのディスク(ないしディスクイメージ)にパーティションを作り、extファイルシステムなどで論理フォーマットし、/usr など、基本的なインストールに必要なディレクトリツリーを構築してインストールし、/etc の中の設定ファイルなどを編集する。また、/boot など、ブートに必要な設定も行う。その他にも多くの作業があるが、全てを行えば、最低限の起動可能なシステムができあがる。
基本的な構築が完了した後は、Beyond Linux From Scratch (BLFS) に従って、応用的なライブラリやX Window Systemを使用するようなデスクトップ環境などを導入することができる。
LFSソフトウェア一覧
[編集]LFS 7.8 に含まれたソフトウェアのリスト
- Acl 2.2.52
- Attr 2.4.47
- Autoconf 2.69
- Automake 1.15
- Bash 4.3.30
- Bc 1.06.95
- Binutils 2.25.1
- Bison 3.0.4
- Bzip2 1.0.6
- Check 0.10.0
- Coreutils 8.24
- DejaGNU 1.5.3
- Diffutils 3.3
- Eudev 3.1.2
- E2fsprogs 1.42.13
- Expat 2.1.0
- Expect 5.45
- File 5.24
- Findutils 4.4.2
- Flex 2.5.39
- Gawk 4.1.3
- GCC 5.2.0
- GDBM 1.11
- Gettext 0.19.5.1
- Glibc 2.22
- GMP 6.0.0a
- Gperf 3.0.4
- Grep 2.21
- Groff 1.22.3
- GRUB 2.02~beta2
- Gzip 1.6
- Iana-Etc 2.30
- Inetutils 1.9.4
- Intltool 0.51.0
- IPRoute2 4.2.0
- Kbd 2.0.3
- Kmod 21
- Less 458
- LFS-Bootscripts 20150222
- Libcap 2.24
- Libpipeline 1.4.1
- Libtool 2.4.6
- Linux 4.2
- M4 1.4.17
- Make 4.1
- Man-DB 2.7.2
- Man-pages 4.02
- MPC 1.0.3
- MPFR 3.1.3
- Ncurses 6.0
- Patch 2.7.5
- Perl 5.22.0
- Pkg-config 0.28
- Procps-ng 3.3.11
- Psmisc 22.21
- Readline 6.3
- Sed 4.2.2
- Shadow 4.2.1
- Sysklogd 1.5.1
- Sysvinit 2.88dsf
- Tar 1.28
- Tcl-core 8.6.4
- Texinfo 6.0
- Tzdata 2015f
- Udev-lfs Tarball udev-lfs-20140408
- Util-linux 2.27
- Vim 7.4
- XML::Parser 2.44
- Xz-Utils 5.2.1
- Zlib 1.2.8
脚注
[編集]注釈
[編集]- ^ 用意したシステムと、インストール目的のシステムの、例えばどちらもx86であれば、アーキテクチャは違わないという点では「クロスではない」が、一般にカーネルやそれに近いシステムのビルドには「現在動いているシステムを雛形にして、その設定等をコピーする」という感じの振舞が含まれているので、別のインストール対象のためのビルドは一種のクロスコンパイルのようにして行う必要がある。
出典
[編集]- ^ "Version 12.3"; 閲覧日: 2025年3月5日; 出版日: 2025年3月5日.
- ^ “iii. LFS Target Architectures”. linuxfromscratch.org. 2025年3月11日閲覧。
- ^ “Appendix D. LFS Licenses”. 2023年8月9日閲覧。
- ^ “What is Linux From Scratch?”. 2025年3月11日閲覧。
- ^ Gerard Beekmans: Beyond Linux From Scratch, Version 6.3 (August 2008)
- ^ “Cross-Compiled Linux From Scratch - Embedded”. 2025年3月11日閲覧。.
- ^ Horan, Brendan (2013-06-12) (English). Practical Raspberry Pi. Apress. pp. 105. ISBN 9781430249726
外部リンク
[編集]- Linux From Scratch プロジェクトサイト
- LFSブック日本語版 (lfsbookja) LFSブックの日本語訳