Skip to main content
Welcome guest. | Register | Login | Post

EasyLFS in numbers

Today I want to abuse my blog to give a little view on the numbers surrounding my "little" project EasyLFS.
I just compiled these yesterday and it was a little surprising how big everything got already. Well, that happens when you don't always keep track of how many packages you have and how many scripts you wrote. ;-)

The ones who have tried Linux from Scratch will surely know that it's a lot of work. I am happy to say that all that work, the typing, is behind me as the scripts are all written. Now it's just changing scripts and adding scripts for new packages.

The current development version of EasyLFS contains 134 source-packages with a total size of 306.6MB. Around 77 of these packages are not part of LFS. These sum up to 135MB, a little less than half of the whole package-directory.

Now let's take into comparison that the last test-LiveCD has 494MB, which doesn't leave very much for the system. Thanks to SquashFS this system gets squeezed down from around 700MB to less than 200MB. The source-packages, already bzip2-compressed, don't loose any or at least not much weight on packaging.

In addition to these packages there are 17 patches, at a weight of 194.3KB, some written by myself, others taken from the LFS-project or patch-archives like of Fedora or Gentoo.
Furthermore there are 2 scripts which I wrote for the InitRamFs, together only 1.4KB small, and a default kernel-configuration including a couple of patches for optional features bringing up 43.6KB in 15 files.

At this time installation is managed by 218 shell-scripts, of which 35 are in Stage1 and 135 in Stage2. All scripts together sum up to 124.8KB and 5759 lines of code.

After installation the finished system has something between 700 to 1100MB (these are rough estimations since I hardly ever install without any options or with all options). During installation more than 2GB (here also I cannot give an exact figure) are necessary because all sources are stored on the partition and compilation is also done there.

Installation takes, depending on the configuration, on my PC, compiling from hard-disk to a mounted image-file around 4 to 5 hours.
The basic configuration of the never released EasyLFS 0.1, which wasn't actually much more than LFS, took 3 days on a 586 notebook.
In QEmu, running on my new notebook, installation with SELinux and some, but not all, optional packages takes around 6 hours.
The system has a boot-time of around 19 seconds from Lilo to login, including startup of LVM, D-Bus, HAL and SSH.

As minimum requirements I see a 586 with around 128MB of RAM. The recommended minimum of hard-disk space is 4GB, of which up to 1GB can be used for swap without having to fear to run out of disk-space during installation.

I already work on EasyLFS for more than a year, the first topics about it date back to end of May and beginning of June 2006 (both topics are in german language).

I hope some of you might find this information and that not all of you are totally bored by this parade of numbers.

For everyone who was thinking to build his own distro but now is scared by these numbers: Don't be afraid. Yes, it is a lot of work, but it's worth it. There's a lot you can learn from it.


Quite impressive when you

Quite impressive when you add it all up. I wasn't aware so many shell scripts are involved in installation, but I can understand.

Anyway, looking forward to getting past the breaking stage and installing it on my computer. I wonder how much time it would take to compile on a Core 2 Duo system. Would be a nice new number to add here, at least for posterity or comparison. Smiling

Even I wasn't aware of all


Even I wasn't aware of all these numbers before I started to collect them for this post. Of course I knew that I wrote a lot of scripts and had a nice pile of packages, but since it's not really important for my work I never looked at the numbers, except for the size of the LiveCD.

Especially the total size of the scripts is a whopper, about 125000 characters spread over nearly 6000 lines.
Knowing how long it'll take on different machines would be nice, that way I could make some sort of table so that interested users could estimate how much installation might take for them. This of course can only work when I have a few details about the installation since every additional package adds to the installation-time; especially SELinux which causes GLibC and the CoreUtils to be compiled an additional time.
Also the 3 different GCC-versions take different time, and then there's the option to install compilers for all supported languages or only C and C++.

But as said, I think having a nice little table showing a few config-details and some info about the hardware would be cool.

Yep. I'll provide those

Yep. I'll provide those details when I install it.

I still can't download big stuff yet though. I'm waiting for T-Com (gah!) to call me and then get the phone line with ADSL in here. The waiting time is maximum 30 days, which is way too long for me, but I'm hoping they'll do it earlier.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.