-   Linux From Scratch (
-   -   LFS minimal install (small book plus zillion questions) (

noob_d 06-23-2008 05:23 PM

LFS minimal install (small book plus zillion questions)
First let me state my goal: To create a more basic LFS install. The book states that ch. 6 creates an environment more for user convenience than a minimal install would. I want that minimal install.

To further explain, I want a system without networking, database stuff, and a bunch of utilities that won't get used to begin with. I've already gone through the LFS book and installed it numerous times, and have even written my own installation scripts. I also did some research on FHS and have conceptualized it on a basic level, at least.

But I have to wonder: is all that software really necessary? Berkeley DB? M4? (etc.) I know there is some I will list and you'll wanna shout "YES!!", but I'm going for a BASIC install and can add stuff I know I'll want later. I'm doing this as part of the learning process for myself, and see what is truly a MINIMAL working system, and what is truly necessary.

Now on to the software in question (in order by the LFS book):

1. In chapter 5, do I really need TCL, Expect, and DejaGNU if I am not going to run any tests? (I've been through all the tests a few times and it all works)
2. Man - can install later
3. Binutils - I think I figured it is necessary
4. GCC - is it necessary after a package manager (ex. dpkg) is installed, if I am not going to recompile the kernel?
5. Berkeley DB
6. Sed - is it needed after it is used in the LFS book?
7. E2fsprogs - can install later
8. Iana-etc
9. M4
10. Bison
11. Ncurses - I know this is needed for "make menuconfig" when compiling the kernel, but is it used any other time?
12. procps - can install later
13. libtool
14. perl
15. readline - figured LFS uses it during Bash install's configure script, and I know what it does, but is it necessary?
16. zlib - does tar, gzip and bzip2 call this library?
17. autoconf - see 18
18. automake - does Make NEED this?
19. diffutils - I'm guessing Patch uses it, other than just comparing files
20. file
21. findutils - can install later
22. flex
23. gawk
24. gettext
25. grep - can install later
26. groff
27. kbd
28. less
29. mktemp - is this used for making temp files?
30. module-init-tools - can install later, maybe
31. patch - can install later
32. psmisc - can install later
33. shadow - can install later
34. sysklogd
35. texinfo
36. udev - used during boot or mounting of drives (hard, cd, usb)?

(entries without any text after them mean I have no clue about them, and/or they just don't sound necessary)

Any insight to this is greatly appreciated.

snowtigger 06-24-2008 10:22 AM

How small do you want to go?

I stumbled across this > While reading a post on here

Just an example for how small you can go.


noob_d 06-24-2008 10:53 AM

How small?
I'm not particular on size, but I just want to leave out unnecessary fluff. Basically I want to start as close to ground zero as I can, and work my way up. I tried Debian's net install, but even without choosing any extra software, it appears to have a bunch of extra stuff.

I'm just trying to determine what is fluff and what is -absolutely- necessary for a system to be able to install more software. I know different people will have different definitions of 'necessary' and 'fluff'. To me, anything that isnt needed to have a shell, basic commands (coreutils and util-linux), and the ability to compile and install software, is fluff.

Here are the packages I am installing during this trial run of LFS:
Linux headers, glibc, binutils, gcc, sed, coreutils, ncurses, readline, bash, bzip2, grub, gzip, make, module-init-tools, sysvinit, tar, udev, util-linux, vim, kernel

Leaving out:
man pages, berkeley db, e2fsprogs, iana-etc, m4, bison, procps, libtool, perl, zlib, autoconf, automake, diffutils, findutils, flex, gawk, gettext, grep, groff, inetutils, iproute, kbd, less, man-db, mktemp, patch, psmisc, shadow, sysklogd, texinfo

Does this help describe things better? Or am I leaving out necessary software?

druuna 06-24-2008 11:43 AM


The init scripts that reside in /etc/rc.d/init.d do use some of the programs you are not installing:

- cleanfs, console, functions and udev all use grep (I have more, but those won't be installed in a basic install).
- functions and modules both use sed.

Just 2 I checked. You might want to check all the other progs you want to leave out against these scripts.

snowtigger 06-24-2008 11:46 AM

You are almost there, but id' suggest something more like this,

glibc, sed, coreutils, ncurses, readline, bash, bzip2, grub, gzip, module-init-tools, sysvinit, tar, udev, util-linux, vim, kernel
e2fsprogs, procps, libtool, zlib, diffutils, findutils, flex, gawk, gettext, grep, less, mktemp, psmisc, shadow, sysklogd,

That should give you a reasonable system to then install other stuff to. However i may have missed something.

There is no networking stuff. Or the ability to compile more packages, but then you can do that on another machine.

glibc can be built in two ways. 1, full build, used for when you need to compile other software. And 2, small, when needed just for making the system run.


noob_d 06-24-2008 04:09 PM

Where can I find a list of these dependencies? I've spent 2 days searching, and the only thing I've come across is LSB. However it does not say X is used for A & B, Y is needed for the system to boot, etc. etc. That's what I really need.

m4mach 06-25-2008 06:32 PM

To boot the system you need only kernel and bash. All dependencies for base programs are in the LFS book

noob_d 06-26-2008 09:59 AM

How did I miss it?
Thank you.
Holy dependency craziness!
Looking over things, I'm wondering if I can safely install the kernel while in the chroot environment WITH the /tools (as in section 6.4). Or do I have to do it in the one without the /tools? In other words, do I need to log out and back in to the chroot env. in section 6.59 to do the stripping and install the kernel?

And one last question: Once I install a package manager (dpkg) will I still need GCC and Make?

All times are GMT -5. The time now is 09:54 AM.