[CentOS] Minimal Install?

Sat Mar 28 22:19:01 UTC 2009
David Goldsmith <dgoldsmith at sans.org>

Hash: SHA1

Norberto Bensa wrote:
> On Sat, Mar 28, 2009 at 12:05 PM, Jim Wildman <jim at rossberry.com> wrote:
>> rpm -qf `which <command>`
> Nice. Thanks Frank and Jim
> What about the minimal install? Is it possible? I don't need kerberos,
> ldap, and a lot of other things.
> Best regards,
> Norberto
> _______________________________________________
> CentOS mailing list
> CentOS at centos.org
> http://lists.centos.org/mailman/listinfo/centos

I was just playing with this myself this week.  For CentOS 5.2, the very
minimal install is 88 RPMs.  This is missing things you will need (like
openssh, passwd, yum, etc) but its basically the bare-bones install.  If
you statically assign IP addresses and don't care about DHCP, you can
reduce the list one more and get rid of 'dhclient'.

All other RPMs are required because of the dependencies that are laid
out.  Various other things will be required as you add some of the
useful utilities back in.

The list of RPMS are:

audit-libs basesystem bash beecrypt bzip2-libs centos-release
centos-release-notes chkconfig coreutils cpio cracklib cracklib-dicts
db4 device-mapper device-mapper-event device-mapper-multipath dhclient
diffutils dmraid e2fsprogs e2fsprogs-libs elfutils-libelf ethtool expat
filesystem findutils gawk gdbm glib2 glibc glibc-common grep grub gzip
info initscripts iproute iputils kernel keyutils-libs kpartx krb5-libs
less libacl libattr libcap libgcc libselinux libsepol libstdc++ libsysfs
libtermcap lvm2 m2crypto MAKEDEV mcstrans mingett mkinitrd mktemp
module-init-tools nash ncurses net-tools openssl pam pcre popt procps
psmisc python readline redhat-logos rootfiles rpm rpm-libs sed setup
shadow-utils sqlite sysklogd SysVinit tar termcap tzdata udev util-linux
vim-minimal zlib

If you are building a Kickstart file, here are useful %packages and
%post sections:

%packages --nobase
- -audit-libs-python
- -checkpolicy
- -dhcpv6-client
- -ecryptfs-utils
- -ed
- -file
- -gnu-efi
- -gpm
- -hdparm
- -kbd
- -libhugetlbfs
- -libselinux-python
- -libsemanage
- -nspr
- -nss
- -openssh
- -openssh-clients
- -openssh-server
- -perl
- -policycoreutils
- -prelink
- -selinux-policy
- -selinux-policy-targeted
- -setools
- -setserial
- -sysfsutils
- -tcl
- -udftools
- -vim-enhanced

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
yum -y remove kernel iptables slang usermode wireless-tools
yum -y remove cryptsetup-luks dbus dmidecode hwdata libgpg-error libusb
yum -y remove libvolume_id libxml2-python pciutils
yum -y remove cyrus-sasl-lib logrotate

Packages that are in the Core group tagged as 'mandatory' will get
installed even if you specify them with '-' in the %packages section
thus the need to explicitly remove them in the %post section.

Packages in the Core group tagged as 'default' can be configured to not
be installed by subtracting them in the %packages section.

After the install finishes, you can run the following rpm command to get
rid of yum stuff if desired:

rpm -e libxml2 python-elementtree python-iniparse python-sqlite
python-urlgrabber rpm-python yum yum-metadata-parser

This 'minimal' load is mainly for educational purposes just to see how
small it can get (about 300MB) -- its not very useful.  A useful minimal
load will be somewhere around 150-200 packages depending on what
utilities you want to include.

- --
David Goldsmith
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org