
Show HN: Build your Linux from Scratch inside Docker with one command - eiskalt
https://github.com/reinterpretcat/lfs
======
UncleEntity
Seems to defeat the purpose of 'from scratch' if all you do is run a script.

I fondly remember building linux from scratch in the early 00's and learning
quite a bit about how a system is put together by doing (and troubleshooting)
the steps. IIRC bootstrapping the compiler was the trickiest bit since the
fedora (or maybe it was still redhat back then) gcc didn't like to play nice
with its younger siblings.

~~~
jiggunjer
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.

~~~
m_mueller
I don't really get what's different compared to using something like `from
debian:jessie`. In what ways is this more lean?

~~~
majewsky
`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_.

~~~
eiskalt
Actually, one of the first commands by default when container is run, is to
fetch about 330Mb of compressed toolchain.

~~~
majewsky
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.)

------
Xeoncross
Interesting invention "Standard Build Units" (SBUs) as a measurement of time
to build/compile.

[http://www.linuxfromscratch.org/~bdubbs/about.html](http://www.linuxfromscratch.org/~bdubbs/about.html)

------
zwischenzug
I did something similar a few years ago:

[https://zwischenzugs.com/2015/01/12/make-your-own-bespoke-
do...](https://zwischenzugs.com/2015/01/12/make-your-own-bespoke-docker-
image/)

it was a great learning experience but take-up was 0 :)

------
rkagerer
Why are the docs at linuxfromscratch.org still based on 4.12 instead of 4.14?
Have they just not gotten around to updating, or is 4.12 considered more
widely accepted?

I want to deep dive into building Linux from scratch (step by step, not via a
magic script) to get intimately familiar with the OS, but wonder if I ought to
invest my time in a more recent version.

~~~
wila
You are talking about kernel versions?

Version 4.12 was from July 2017 until September 2017 (0)

Right now the main line kernel is at 4.14, but it has not changed so much that
it really matters for learning Linux.

[0]
[https://en.wikipedia.org/wiki/Linux_kernel#4.x.y_releases](https://en.wikipedia.org/wiki/Linux_kernel#4.x.y_releases)

~~~
rkagerer
I am. Do you think the same steps will work with 4.14? (Or at least that any
changes I need to make would be straightforward enough for a relative beginner
to figure out?)

~~~
wila
It is impossible for me to determine your level, I would expect it to be
straightforward enough.

But probably best to stick with the kernel that the doc is written for.

------
provost
So if I'm understanding this correctly, this builds the LFS kernel inside a
docker container into an ISO image that can be used with VirtualBox, but
cannot be used within a Docker container itself?

~~~
eiskalt
Yes, that's correct. The goal was to use the whole LFS's system including OS
kernel. Docker, AFAIK, uses host's kernel, see info here
[https://docs.docker.com/get-started/#virtual-machine-
diagram](https://docs.docker.com/get-started/#virtual-machine-diagram)

Anyway, it should be possible to build image for docker container if
necessary.

------
jakeogh
LFS is a gateway to Gentoo;)

~~~
nickstinemates
Gentoo is such a great learning platform. Stage 3 installs really educate you
on how a linux machine is built. Portage on how system services are built in a
modular (or not) way. It creates such a different relationship with the user
than most other OS's.

------
jason_slack
This idea is interesting. I recently started a LFS project but quickly ran
into I am traveling a lot right now.

Any thoughts on using a virtual machine to practice while I travel? VMWare
Fusion?

~~~
giancarlostoro
I don't see why this wouldn't work?

------
digi_owl
I thought LFS already had an automated variant for the base book. Supposedly
the latest Gobolinux was bootstrapped using a variant of it.

------
throwaway2016a
First thought was the website
[http://www.linuxfromscratch.org/](http://www.linuxfromscratch.org/) and book.

Edit: low and behold under "License"...

"This work is based on instructions from Linux from Scratch project and
provided with MIT license."

~~~
jfoutz
My first thought was this old chestnut
[http://bash.org/?464385](http://bash.org/?464385)

