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
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
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
21. findutils - can install later
25. grep - can install later
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
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.
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
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?
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.
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.
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.
To boot the system you need only kernel and bash. All dependencies for base programs are in the LFS book
How did I miss it?
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 04:34 PM.|