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. Thanks, Darrell |
How small do you want to go?
I stumbled across this > http://asashi.net/pages/pitux.html. While reading a post on here Just an example for how small you can go. :) |
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? |
Hi,
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?
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 06:30 AM. |