April 18th, 2007

max

minimizing fedora

So just for fun, I've been playing around with trying to see how small of an install I can do, and yet still have a "useful" and extensible machine. I'm one of those people who hates having extra stuff on a machine, and so I'm trying to figure out how minimal I can make an install while still being able to ssh into the box, have a firewall, and have yum there to add other packages as needed.

Where am I going with this? My goal is to take my minimal package set and then use Pungi and/or Revisor in order to build my own custom distro of Fedora, so I can speak intelligently about how it *actually works* at things like the Red Hat Summit and LinuxTag.

I'm using kickstart to do this. I started with @core and @base, and then started excluding packages that were in the comps file but that seemed "non-essential". I noticed that some of those packages were getting pulled back in during install anyway, but I was able to use a "yum remove" in the %post in order to get rid of them a second time.

Here's what I've managed. Patches or improvements cheerfully accepted. The initial install set is 252 packages, but once the "yum remove" goes through in the %post section, it's down to 236 packages (and about 725 MB of disk space). I realize I could get rid of one more package by removing @editors (and therefore vim-enhanced), but I like vim-enhanced.

install
url --url http://download.fedora.redhat.com/pub/fedora/linux/core/development/i386/os/
text
lang en_US.UTF-8
keyboard us
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc America/New_York
reboot
zerombr yes
bootloader --location=mbr
clearpart --all
autopart
rootpw CHANGE_ME

%packages --ignoremissing
@base
@core
@editors
-aspell
-aspell-en
-bluez-gnome
-bluez-libs
-bluez-utils
-ccid
-coolkey
-cpuspeed
-dhcpv6_client
-dos2unix
-dosfstools
-fbset
-finger
-ftp
-GConf2
-ifd-egate
-irda-utils
-jwhois
-krb5-workstation
-libselinux-python
-libsemanage
-libXres
-mdadm
-mgetty
-mtr
-NetworkManager
-nss
-nss_db
-nss_ldap
-pam_ccreds
-pam_krb5
-pam_pkcs11
-pam_smb
-pax
-pcmciautils
-policycoreutils
-psacct
-quota
-redhat-lsb
-rdate
-rdist
-rsh
-selinux-policy
-selinux-policy-targeted
-talk
-tcsh
-telnet
-unix2dos
-vconfig
-words
-ypbind
-yp-tools

%post
/usr/bin/yum remove -y bc cups desktop-file-utils libdrm libICE libXxf86vm
/usr/bin/yum remove -y make rmt wireless-tools system-config-network-tui
/usr/bin/yum remove -y system-config-securitylevel-tui yum-updatesd
/usr/bin/yum remove -y xorg-x11-filesystem iptables-ipv6
/usr/bin/yum update -y