From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040809 Epiphany/1.3.8 Description of problem: The "minimal" install of Fedora Core has been over 500 MB since at least the Fedora Core 2 release. The bulk of this is not "essential" or even imminently reasonable: One particular component, for example, includes several dozens of megabytes of documentation outside of its -devel package. Another component includes dozens to hundreds of megabytes of localized strings (even if only en_US is selected for installation in anaconda). This may be best considered a tracker for individual problems that unreasonably bloat the "minimal" distribution.
Can you dump the package list that ends up installed for such a minimal install?
Note, if you want *truly* minimal, use kickstart with %packages @Core
The *biggest* way to get rid of some bloat is to drop redhat-lsb. Of course, there are some interesting political ramifications of that.
Here's a minimal FC4 install shoehorned into a 1gb compactflash: acl-2.2.23-8 audit-libs-0.8.2-1 basesystem-8.0-5 bash-3.0-31 beecrypt-4.1.2-8 binutils-2.15.94.0.2.2-2 bzip2-1.0.2-16 bzip2-libs-1.0.2-16 checkpolicy-1.23.1-1 chkconfig-1.3.20-1 comps-4-0.20050606 coreutils-5.2.1-48 cpio-2.6-7 cracklib-2.8.2-1 cracklib-dicts-2.8.2-1 cyrus-sasl-2.1.20-5 cyrus-sasl-md5-2.1.20-5 db4-4.3.27-3 device-mapper-1.01.02-1.0 dhclient-3.0.2-12 dhcpv6_client-0.10-13 diffutils-2.8.1-15 e2fsprogs-1.37-4 elfutils-0.108-1 elfutils-libelf-0.108-1 ethtool-3-1 expat-1.95.8-6 fedora-logos-1.1.31-1 fedora-release-4-2 filesystem-2.3.4-1 findutils-4.2.20-1 gawk-3.1.4-5.2 gdbm-1.8.0-25 gettext-0.14.3-1 glib2-2.6.4-1 glibc-2.3.5-10 glibc-common-2.3.5-10 glibc-devel-2.3.5-10 glibc-headers-2.3.5-10 glibc-kernheaders-2.4-9.1.94 gpg-pubkey-4f2a6fd2-3f9d9d3b grep-2.5.1-48 grub-0.95-13 gzip-1.3.5-6 hardlink-1.0-1.13 hotplug-2004_09_23-7 hwdata-0.158-1 info-4.8-4 initscripts-8.11.1-1 iproute-2.6.11-1 iptables-1.3.0-2 iptstate-1.4-1.1 iputils-20020927-22 kernel-2.6.11-1.1369_FC4 krb5-libs-1.4-3 ksh-20050202-1 less-382-7 libacl-2.2.23-8 libattr-2.4.16-5 libgcc-4.0.0-8 libselinux-1.23.10-2 libsepol-1.5.9-2 libstdc++-4.0.0-8 libtermcap-2.0.8-41 libuser-0.53.7-1 libxml2-2.6.19-1 libxml2-python-2.6.19-1 lockdev-1.0.1-7 lvm2-2.01.08-2.1 MAKEDEV-3.19-1 mingetty-1.07-5 mkinitrd-4.2.15-1 mktemp-1.5-23 module-init-tools-3.1-3 nano-1.3.5-0.20050302 ncurses-5.4-17 neon-0.24.7-6 net-tools-1.60-52 newt-0.51.6-7 ntsysv-1.3.20-1 openldap-2.2.23-5 openssh-4.0p1-3 openssh-clients-4.0p1-3 openssh-server-4.0p1-3 openssl-0.9.7f-7 pam-0.79-8 passwd-0.69-2 pcre-5.0-4 perl-5.8.6-15 perl-Filter-1.30-7 policycoreutils-1.23.10-2 popt-1.10.1-21 prelink-0.3.4-3 procps-3.2.5-6 psmisc-21.5-4 pyOpenSSL-0.6-1.p24.4 python-2.4.1-2 python-elementtree-1.2.6-4 python-sqlite-1.1.6-1 python-urlgrabber-2.9.6-1 readline-5.0-3 reiserfs-utils-3.6.19-2 rhnlib-1.8-6.p24.1 rootfiles-8.1-1 rpm-4.4.1-21 rpm-libs-4.4.1-21 rpm-python-4.4.1-21 sed-4.1.4-1 selinux-policy-targeted-1.23.16-6 setools-2.1.0-5 setup-2.5.44-1 shadow-utils-4.0.7-9 slang-1.4.9-17 specspo-9.0.92-1.3 sqlite-3.1.2-3 symlinks-1.2-24 sysklogd-1.4.1-30 SysVinit-2.85-39 tar-1.15.1-5 tcl-8.4.9-3 tcp_wrappers-7.6-39 tcsh-6.14-1 termcap-5.4-4 tmpwatch-2.9.3-1 tzdata-2005i-2 udev-058-1 usermode-1.80-1 util-linux-2.12p-9.5 vconfig-1.8-7 wget-1.9.1-22 yum-2.3.2-7 zlib-1.2.2.2-3 zlib-devel-1.2.2.2-3 with this packagelist, FC4 takes up 468456kb. note that it was a real PITA to get FC4 to install into 1gb. this minimal install is suitable for eg embedded diskless routers. you could call this package list "barebones".
oops. you can lose glibc-devel and zlib-devel also. this brings it down to 463712kb.
Reassigning to comps as that seems the logic place for this to be done
I did a minimal install today as I only wanted to burn the first CD (why isn't there an ISO for network install as Debian on the download page?) which was over 600MB with everything unselected. Not too bad for me because I'm left with a very functionnal system with no services except sshd but far from minimal... Maybe a checkbox with "Remove LSB support" would be a solution for those who want a truly minimal system? The first thing I did next was to do a yum update. 93 packages were to be updated and among them: xorg-x11-Mesa-libGL xorg-x11-Mesa-libGLU xorg-x11-libs Surprising!
(In reply to comment #7) > I did a minimal install today as I only wanted to burn the first CD (why isn't > there an ISO for network install as Debian on the download page?) which was over > 600MB with everything unselected. There is a network installation option using the boot iso image. Read the installation guide for details.
it's still rather ridiculous that FC4 installs X11 crap when not asked for. it is amazingly difficult to shoehorn FC4 into embedded systems.
With FC5t2 I've unchecked everything at install and I get a 514M install. What's worse is that: *There is no ssh *There is no man pages *There is no yum *rpm doesn't work (librpm-4.4.so: cannot open shared object file)!!! In the meantime, the largest single file is /usr/lib/locale/locale-archive at 52M (see bug #156477 for why this is unreasonable). It would be ok if I only there was a tradeoff between functionnality and install size but it doesn't seem to be the case here; we get a large size install and missing fundamental functionnalities.
I do believe you may have had some other problem re rpm on your core install. librpm-4.4.so is part of rpm-libs, which is a dep of rpm itself. rpm-libs should have been installed, and thus librpm-4.4.so should have been on your file system. A minimal install is just that, the smallest amount of packages to get a working system, even with package management (rpm). Look in your comps file. We'll happily listen to suggestions on how to tweak this. Please be aware that some packages get pulled in due to deps. These could get looked at if they look rather insane.
Perhaps newer bug #167914 and bug #161196 are related to this fight against too many things in the minimal install?
Jesse: I redid an install where I've unchecked everything blindly with FC5T3 and rpm does work this time. That install is using 524M (10M more than T2?). I couldn't do it with the first CDROM only either as I was asked for the second CD also and had to resort to a HTTP network install (see my comment in bug #167914). As for what is and isn't the minimal install... its just that I find the weight of this minimum install is not proportional with the functionnality provided. Also, it seems the meaning of minimal as changed if I look at my comment #7 where I had useful/essential things like ssh. On a Debian minimal install, it is still expected that I'm going to be able to easily install network packages with apt-get first thing when I boot into it. This isn't the case here (no yum) but I can understand the argument that we might not even want the system to be able to install stuff from elsewhere with "minimal"... Next, for some packages that have been installed that I find strange if I look at the list for a few minutes. Just "talking" out loud here, my rpm-fu is not so great and I'm not that familiar with what everything is supposed to do: /usr/share/doc [27M]: as with man, it would be nice if this was splitted from the programs themselves man pages [8M]: man pages are present even when man program is not there. I guess it would be require to create separate man pages rpm which might be too complex (?) Also, I'm getting man pages in languages I haven't installed: cs, es, de, fr, hu, id, it, ja, zh, pl, pt... etc. gawk [4M]: OK, this is needed by prelink [1.5M] utility. Seems a bit much to drag in a larger package for what it does however. db4 [2.5M]: nothing requires it? because of LSB? fedora-logos [945146 bytes]: nobody requires it, I don't have any GUI to display it... sqlite [0.5M]: nothing requires it? pyxf86config [174606 bytes] : I have no gui so this is probably not useful but required by rhpl (which has a few modules referencing video/mouse stuff also) ed [70K]: nothing requires it and does anyone seriously uses it? With this quick survey, I can see different aspects that this problem would need to be approached: -removing stuff that is not required or cannot be of use in a minimal environment -splitting existing rpm in more, smaller pieces (I think that this is an approach that Debian favors -identifying GUI vs text UI stuff and splitting them -checking utilities dependencies to see if there are not more lightweight alternatives for doing the same job -looking at how and if datafiles could be compressed (and decompressed when needed) -The kernel is also problematic, as all those unused drivers modules take a massive amount of place and on the other hand this was supposed to be the advantage of modules -removing obsolete things Is it all worth it? Well, as other have mentionned, it would be nice if Fedora could scale from embedded to clusters out of the box... Plus, the smaller we get the true minimal install, the more functionnality can than fit in on top.
So I'm not sure where to go with this. If you provide some differences to comps.xml to provide what would be your vision of a truly minimal install, that would be good. We'd review these differences and see if they are sane or not.
i think the package list from #4 is close to my ideal of a minimal install. a box which boots, you can log into (console, maybe optionally ssh) and install/remove packages. that's _all_. for now, i'm using ubuntu for compactflash installs. no problems installing minimal systems onto 1gb cf. for example a compactflash nameserver takes 256mb, and a fully functional compactflash x86_64 PBX with asterisk, apache2, gcc, vsftpd/tftpd, about 30mb of phone firmware and config files, and full asterisk and kernel sources takes 530mb. i don't see any reason why fedora can't meet or exceed the same slimness as ubuntu. currently, a bare minimum fc4 will only barely fit in a 1gb cf, and it takes some annoying gymnastics to get it to install at all.
*cough* -- The methodology of unchecking packages is sub-optimal -- a more general way to go hunting is outlined at: http://www.owlriver.com/tips/tiny-centos/ to yield a one-way delendency endge node trimming, and then do pair-wise and greater trims. -- Russ Herrold
The minimal install, just core, no base, is very very small indeed. I don't think it could get much smaller while still being useable. Methods to GET to this install set should be brought up in different bug reports. I'm going to close this one.