Linux From Scratch
# Linux From Scratch

Linux From Scratch (LFS, „Linux von Grund auf“) ist ein Projekt, das eine Schritt-für-Schritt-Anleitung zur Erstellung eines auf die persönlichen Wünsche angepassten Linux-Betriebssystems von Grund auf aus den Quelltexten anbietet.

## Geschichte

Die erste Version von Linux From Scratch wurde am 16. Dezember 1999 veröffentlicht.

Die aktuelle Version 12.0 wurde am 1. September 2023 freigegeben. Zudem gibt es auch eine deutschsprachige Version, die zurzeit bei der Versionsnummer 6.4 steht und am 23. November 2008 veröffentlicht wurde.

## Unterprojekte

Die Anleitung Linux From Scratch (LFS) erklärt die Installation eines einfachen Grundsystems, mit dem gerade so gearbeitet werden kann – sie kann jedoch auch als kleiner Distributionsbaukasten betrachtet werden. Die Installation eines vor-kompilierten Linux einer Linux-Distribution ist schneller, da keine oder nur wenige Installationspakete übersetzt werden müssen. Weiterführende Komponenten wie die Installation verschiedener Server oder Desktop-Umgebungen (wie z. B. KDE oder Gnome) werden in der Dokumentation Beyond LFS (kurz BLFS) beschrieben.

Des Weiteren existiert das Projekt Automated LFS (kurz ALFS), bei dem versucht wird, die Installation eines LFS, die langwierig und kompliziert ist, zu automatisieren und zu vereinfachen. Es richtet sich an Benutzer, die bereits einige Male durch den LFS und BLFS Installationsprozess durchgegangen sind und eine Automatisierung wünschen. Hardened LFS (kurz HLFS) dagegen setzt sich mit der Absicherung des LFS-Grundsystemes auseinander und befindet sich in der Entwicklung.

Das ursprüngliche LFS-Projekt beschäftigt sich mit der Installation auf einem IA-32-System. Für andere Architekturen wurde das Projekt Cross Linux From Scratch (kurz CLFS) ins Leben gerufen, das sich speziell mit den Problemen des Cross-Compilings inklusive der Kompilierung von headless und eingebetteten Systemen beschäftigt. CLFS unterstützt eine breite Palette von Prozessoren und verwendet weiterführende Techniken, die nicht im ursprünglichen LFS Buch enthalten sind. Dazu gehören cross-build Toolchains und multilibrary Unterstützung. In der Version 7.0 soll auch in der Grunddokumentation eine 64-Bit-Unterstützung eingebaut werden.

Ein weiteres Unterprojekt, Hints (englisch für „Tipps“), sammelt Kurzrezepte rund um LFS.

### Live-CD

Eine Live-CD diente als Basissystem, von dem aus ein LFS-System gebaut werden konnte.

Da Linux zum Bauen eines LFS-Systems notwendig ist und die CD außerdem ausgiebig auf die Kompatibilität zu LFS getestet wurde, war es empfehlenswert, mit der CD zu beginnen.

Sie enthielt alle Werkzeuge, die zum Übersetzen der Quellen notwendig sind. Ebenso waren das Linux-From-Scratch-Buch und der Quelltext auf der CD enthalten. Somit war keine Internetverbindung beim Bau des Systems erforderlich.

Am 30. November 2007 wurde die letzte Live-CD-Version der Reihe 6.3 (mit der Revisionsnummer 2160) veröffentlicht. Am 30. März 2008 wurde das LiveCD-Projekt mangels Beteiligung eingestellt. Sie kann mittlerweile nicht mehr verwendet werden, da die Programme zu alt zum Kompilieren einiger Quelltexte sind.

## Andere Baukästen

Neben Linux From Scratch sind auch die folgenden Distributionsbaukästen bekannt:

* Arch Linux
* Crux
* Gentoo Linux
* Morphix
* T2 SDE
* NuTyX

## Liste der Bestandteile von LFS

Folgende Programmquellen sind in der LFS Version 8.4 enthalten:

* ACL 2.2.53
* Attr 2.4.48
* Autoconf 2.69
* Automake 1.16.1
* Bash 5.0
* Bc 1.07.1
* Binutils 2.32
* Bison 3.3.2
* Bzip2 1.0.6
* Check 0.12.0
* Coreutils 8.30
* DejaGnu 1.6.2
* Diffutils 3.7
* Eudev 3.2.7
* E2fsprogs 1.44.5
* Elfutils 0.176
* Expat 2.2.6
* Expect 5.45.4
* File 5.36
* findutils 4.6.0
* Flex 2.6.4
* Gawk 4.2.1
* GCC 8.2.0
* GDBM 1.18.1
* Gettext 0.19.8.1
* Glibc 2.29
* GMP 6.1.2
* Gperf 3.1
* Grep 3.3
* Groff 1.22.4
* GRUB 2.02
* Gzip 1.10
* Iana-Etc 2.30
* Inetutils 1.9.4
* intltool 0.51.0
* IPRoute2 4.20.0
* KBD 2.0.4
* Kmod 26
* Less 530
* Libcap 2.26
* Libffi 3.2.1
* Libpipeline 1.5.1
* Libtool 2.4.6
* Linux 4.20.12
* M4 1.4.18
* Make 4.2.1
* Man-DB 2.8.5
* Man-pages 4.16
* Meson 0.49.2
* MPC 1.1.0
* MPFR 4.0.2
* Ninja 1.9.0
* Ncurses 6.1
* OpenSSL 1.1.1a
* Patch 2.7.6
* Perl 5.28.1
* Pkg-config 0.29.2
* Procps 3.3.15
* Psmisc 23.2
* Python 3.7.2
* Readline 8.0
* Sed 4.7
* Shadow 4.6
* Sysklogd 1.5.1
* Systemd 240
* SysVinit 2.93
* Tar 1.31
* Tcl 8.6.9
* Time Zone Data 2018i
* Texinfo 6.5
* Udev-lfs Tarball
* Util-linux 2.33.1
* Vim 8.1
* Xml::Parser 2.44
* XZ Utils 5.2.4
* Zlib 1.2.11
