Hacker News new | ask | show | jobs
by jiggunjer 3117 days ago
What's the difference between writing x commands and hitting enter once, vs writing x commands and waiting for each command to finish? This is a good starting point for people who already know Linux and want a lean self-built system.
4 comments

>What's the difference between writing x commands and hitting enter once, vs writing x commands and waiting for each command to finish?

The point of homework is to do it yourself, not to clone a repo with the answers.

The secret assumption is that things will break and the builder will learn how things might break and how to fix them.

I've had a lot of fun with LFS, but if everything goes smoothly it is a bit pointless. When builds broke or I missed components there was an opportunity to better my understanding of the system. Experience with multiple failure modes in a safe environment - it counts for a lot.

It also forces you to learn what the dependency graph looks like and a little bit of why, which can be helpful.

Not gonna be all that lean with all the build tools and whatnot. And isn't all that practical without package management.

Linux kernel + busybox + few unit scripts == lean

But, you know, to each their own -- don't get me wrong, I really enjoyed tinkering with LFS back in the day.

I don't really get what's different compared to using something like `from debian:jessie`. In what ways is this more lean?
`FROM debian:jessie` costs 53 MiB. (And by the way, please upgrade to Stretch at the earliest convenience.) `FROM alpine` costs 2 MiB. When you need to send container images across the globe on shitty connections, this matters a lot.
Actually, one of the first commands by default when container is run, is to fetch about 330Mb of compressed toolchain.
I didn't expect myself to ever say this, but: Our Openstack containers are much leaner than that. (Swift ends up at ~95 MiB for example.)
Generally speaking, building an LFS, you can freely choose what software to include or omit, and where there are multiple pieces of software that solve the same problem, you can choose which one to use. (Of course, you are stuck with the work of making all this work, but that is what this is all about: Learning what makes a Linux system tick.)