Linux From Scratch 13.1 Released with Major Toolchain Updates

Linux From Scratch 13.1 Released with Major Toolchain Updates

Linux From Scratch 13.1 is out, with major toolchain updates.

For anyone unfamiliar: LFS is not a distribution. It is a book that walks you through building a working Linux system entirely from source, starting from a host system and ending with something that boots on its own. There is no installer, no package manager, and no ISO. You compile everything, in order, by hand.

Why a toolchain update is the whole release

In most projects, “updated toolchain” means bumping a version in CI. In LFS it means the book was rewritten.

The LFS build is a precise sequence in which each step depends on the exact behaviour of the previous one. The process builds a temporary cross-toolchain, uses it to build a minimal system, then uses that system to rebuild itself cleanly so the final result carries no dependency on the host. New GCC, binutils, and glibc versions change compiler flags, default behaviours, header layouts, and occasionally the order things must be built in.

So a toolchain update means every command in the book has to be verified again, on a build that takes many hours and where a failure at step 70 can originate at step 12. The maintainers do this every cycle, for free, and the result is a set of instructions that works start to finish.

What LFS is actually good for

Not for daily use. Building it is the point, and the thing you get at the end is a system with no package manager, which you maintain by compiling updates yourself and tracking dependencies in your head or in notes.

What it is exceptionally good at is destroying the illusion that a Linux system is a single thing. After LFS you know, concretely rather than abstractly:

What the toolchain actually is. The relationship between the compiler, the assembler, the linker, and the C library, and why bootstrapping one requires the others in a specific order.

Why the filesystem hierarchy is shaped as it is. You create /usr, /etc, /var and the rest yourself, and decide what goes in them. Our directory explainers cover the conventions; LFS makes you enact them.

What init does. You install and configure it manually, so what systemd is stops being a topic of opinion and becomes a thing you set up.

What a package manager does for you. Mostly by its absence. Dependency resolution stops being invisible when you are the resolver, and our packages and repositories explainer reads very differently afterwards.

Practical advice

Set aside a weekend, use a virtual machine, and follow the book exactly. The single most common way to fail is improvising, because a step that looks redundant is usually preventing something twelve steps later.

BLFS, Beyond Linux From Scratch, covers what comes after: X, a desktop, networking, a browser. That is a considerably longer project.

Nobody needs to do this. Plenty of very good engineers never have. But if you have ever wanted the layer below the distribution to stop being a black box, this is the most direct route there is, and 13.1 is a current and tested one.

The book is at linuxfromscratch.org.