Linux From Scratch (LFS), a project that provides you with step-by-step instructions for building your own custom Linux system, has released a new version of their book in two versions (without and with systemd):
The Linux From Scratch community announces the release of LFS Version 9.0. Major changes include toolchain updates to glibc-2.30, and gcc-9.2.0. In total, 33 packages were updated since the last release. Changes to the text have also been made throughout the book. The Linux kernel has also been updated to version 5.2.8.
[…]You can read the book online, or download to read locally.
In coordination with this release, a new version of LFS using the systemd package is also being released. This package implements the newer systemd style of system initialization and control and is consistent with LFS in most packages.
You can read the systemd version of the book online at LFS-systemd, or download-systemd to read locally.
The Beyond Linux From Scratch (BLFS) project, which extends the LFS project by providing “instructions for installing and configuring various packages on top of a base LFS system”, such as server and desktop software and libraries, also announced an accompanying release:
The BLFS Team is proud to present version 9.0 of Beyond Linux From Scratch. This version includes approximately 1000 packages beyond the base Linux From Scratch Version 9.0 book. The book has 850 updates from the previous version plus many other text and formatting changes.
The System V version of the book now has added Gnome as an additional desktop environment in addition to the previous KDE/plasma, xfce, and lxde environments.
This is a coordinated release with BLFS-9.0-systemd.
You can view the 9.0 version at online or download to read locally.
You can view the 9.0 systemd version at online systemd or download-systemd to read locally.
I’ve been wanting to set up an LFS system as a learning experience for almost two decades now. I really have to stop putting it off.
About 10 years ago, maybe more, I tried to install LFS. Problem back then that it was very much like do this, then do that, but it didn’t explain why.
That’s exactly my recollection as well. I tried it years ago, and enjoyed building everything myself, but yeah, just felt like I was doing data entry more than anything else. Very little explanation, just loads of commands.
I try to build LFS every once in a while (it’s an interesting exercise). I agree that there is very little explanation, especially why you are building the software you are, and why in that order. I ended up looking for the answers outside of LFS, and I did find them. To me, the biggest frustration were the init scripts. They just say “untar this archive, type `make install`, and now you have all the init scripts you need”. That part has always left me extremely unsatisfied. Again, here, I had to go outside of LFS to really understand how all that works, the other in which scripts are run, why are they run in that order, etc.
The other thing I do not like about their way of doing things is the lack of package management. I understand their reasons for not including it (for one, it would be a disaster getting everyone on the same page), but I still think they should include something simple like Slackware’s pkgtool. Without package management, what you end up with is an unmanageable system.
I love groups that publish this type of HowTo, and while I agree some more background info can be helpful I’m not going to discourage them in anyway. I too have been one who thought about giving this build a try for a long long time, and done nothing about it. The sooner this sort of process becomes routine that better off we will all be, with diversity the best immunity against a whole host of ailments!
In particular I should be working towards a custom lightweight secure build for my IoT projects.
It’s easy enough to do over a couple of days. I used to build it in a virtual machine and then dump it onto a hard disk and use it from there.
Following along, I always felt it did a good enough job teaching me how a system was built together. It sits somewhere between a list of binaries/packages and digging through the man pages for each package.
That said, even though it does a good job if isolating the end result from the host system, building it can still often fail in unpredictable ways based on your distribution, even failing later in the process.
“I’ve been wanting to set up an LFS system as a learning experience for almost two decades now. I really have to stop putting it off.”
Yeah, as soon as I nail down this World Peace things I’m going to do the same.
I used to use Gentoo Linux almost exclusively. I liked doing stage 1 installs (at first). Later I ended up doing stage 3’s. It was a good experience I felt was worthwhile (learning the ins & outs).