Tiny CentOS 5.5 64 bit (x86 64)
From WBITT's Cooker!
I have been thinking to do this for a long time. Finally, yesterday, I got it done. The idea is to have an absolute minimum number of packages. The driving force behind this thought is the latest RedHat Virtualization solution, RHEV, or, RedHat Enterprise Virtualization. RHEV is a slim/cut down version of RHEL 6, working as a KVM Hypervisor, with a very small install foot-print. I noticed that it is a similar concept as Citrix XEN Server. So, I wanted to see, if I can be successful in creating a similar product, based on CentOS. Notice that the procedure explained below DOES NOT contain libvirt, as yet. This is only because I was first interested in creating as small a collection of files as possible. Since I have included yum in it, I (and you) can add any other RPM based package to it. In coming days however, I will release a (so called) hypervisor version, InshaAllah (God Willing).
You will notice that the list of files and the total size is less than what is available in the "@core" group, in any RHEL/CENTOS distribution CD. I came up with a very small list, starting with kernel, and kept trying to install the related RPMS in a temporary directory, until all dependencies got resolved. When I completed the basic, I added ssh-server, wget and yum to it. That would essentially make it a working server installation/distribution. Anything else can be added through "yum". The packages size is 99 MB in total. And only 104 files.
Note that I (generated and) tested this on a KVM based VM. This list does not include kernel-xen.
I used the following two line script to test install the RPMs.
[root@vm2 centos-micro]# cat testrun.sh #!/bin/bash rpm --initdb --dbpath /data/RPMtest/ rpm --test --dbpath /data/RPMtest/ -ivh *.rpm [root@vm2 centos-micro]#
Here are the basic stats:
Total packages:
[root@vm2 centos-micro]# ls -1 | grep -v testrun.sh | wc -l 104 [root@vm2 centos-micro]#>
Un-installed size of all RPMs in this directory:
[root@vm2 centos-micro]# du -sh . 99M . [root@vm2 centos-micro]#
Includes ssh-server, wget and yum:
[root@vm2 centos-micro]# ls -1 | sort audit-libs-1.7.17-3.el5.x86_64.rpm basesystem-8.0-5.1.1.el5.centos.noarch.rpm bash-3.2-24.el5.x86_64.rpm binutils-2.17.50.0.6-14.el5.x86_64.rpm bzip2-libs-1.0.3-4.el5_2.x86_64.rpm centos-release-5-5.el5.centos.x86_64.rpm centos-release-notes-5.5-0.x86_64.rpm chkconfig-1.3.30.2-2.el5.x86_64.rpm coreutils-5.97-23.el5_4.2.x86_64.rpm cpio-2.6-23.el5_4.1.x86_64.rpm cracklib-2.8.9-3.3.x86_64.rpm cracklib-dicts-2.8.9-3.3.x86_64.rpm crontabs-1.10-8.noarch.rpm db4-4.3.29-10.el5.x86_64.rpm device-mapper-1.02.39-1.el5.x86_64.rpm device-mapper-event-1.02.39-1.el5.x86_64.rpm device-mapper-multipath-0.4.7-34.el5.x86_64.rpm dmraid-1.0.0.rc13-63.el5.x86_64.rpm dmraid-events-1.0.0.rc13-63.el5.x86_64.rpm e2fsprogs-1.39-23.el5.x86_64.rpm e2fsprogs-libs-1.39-23.el5.x86_64.rpm elfutils-libelf-0.137-3.el5.x86_64.rpm ethtool-6-4.el5.x86_64.rpm expat-1.95.8-8.3.el5_4.2.x86_64.rpm filesystem-2.4.0-3.el5.x86_64.rpm findutils-4.2.27-6.el5.x86_64.rpm fipscheck-1.2.0-1.el5.x86_64.rpm fipscheck-lib-1.2.0-1.el5.x86_64.rpm gawk-3.1.5-14.el5.x86_64.rpm gdbm-1.8.0-26.2.1.x86_64.rpm glib2-2.12.3-4.el5_3.1.x86_64.rpm glibc-2.5-49.x86_64.rpm glibc-common-2.5-49.x86_64.rpm grep-2.5.1-55.el5.x86_64.rpm gzip-1.3.5-11.el5.centos.1.x86_64.rpm hmaccalc-0.9.6-3.el5.x86_64.rpm info-4.8-14.el5.x86_64.rpm initscripts-8.45.30-2.el5.centos.x86_64.rpm iproute-2.6.18-11.el5.x86_64.rpm iputils-20020927-46.el5.x86_64.rpm kernel-2.6.18-194.el5.x86_64.rpm keyutils-libs-1.2-1.el5.x86_64.rpm kpartx-0.4.7-34.el5.x86_64.rpm krb5-libs-1.6.1-36.el5_4.1.x86_64.rpm less-436-2.el5.x86_64.rpm libacl-2.2.39-6.el5.x86_64.rpm libattr-2.4.32-1.1.x86_64.rpm libcap-1.10-26.x86_64.rpm libgcc-4.1.2-48.el5.x86_64.rpm libselinux-1.33.4-5.5.el5.x86_64.rpm libsepol-1.15.2-3.el5.x86_64.rpm libstdc++-4.1.2-48.el5.x86_64.rpm libsysfs-2.0.0-6.x86_64.rpm libtermcap-2.0.8-46.1.x86_64.rpm libxml2-2.6.26-2.1.2.8.x86_64.rpm logrotate-3.7.4-9.x86_64.rpm lvm2-2.02.56-8.el5.x86_64.rpm m2crypto-0.16-6.el5.6.x86_64.rpm MAKEDEV-3.23-1.2.x86_64.rpm mcstrans-0.2.11-3.el5.x86_64.rpm mingetty-1.07-5.2.2.x86_64.rpm mkinitrd-5.1.19.6-61.x86_64.rpm mktemp-1.5-23.2.2.x86_64.rpm module-init-tools-3.3-0.pre3.1.60.el5.x86_64.rpm nash-5.1.19.6-61.x86_64.rpm ncurses-5.5-24.20060715.x86_64.rpm net-tools-1.60-81.el5.x86_64.rpm nspr-4.7.6-1.el5_4.x86_64.rpm nss-3.12.3.99.3-1.el5.centos.2.x86_64.rpm openssh-4.3p2-41.el5.x86_64.rpm openssh-server-4.3p2-41.el5.x86_64.rpm openssl-0.9.8e-12.el5_4.6.x86_64.rpm pam-0.99.6.2-6.el5_4.1.x86_64.rpm pcre-6.6-2.el5_1.7.x86_64.rpm popt-1.10.2.3-18.el5.x86_64.rpm procps-3.2.7-16.el5.x86_64.rpm psmisc-22.2-7.x86_64.rpm python-2.4.3-27.el5.x86_64.rpm python-elementtree-1.2.6-5.x86_64.rpm python-iniparse-0.2.3-4.el5.noarch.rpm python-sqlite-1.1.7-1.2.1.x86_64.rpm python-urlgrabber-3.1.0-5.el5.noarch.rpm readline-5.1-3.el5.x86_64.rpm rpm-4.4.2.3-18.el5.x86_64.rpm rpm-libs-4.4.2.3-18.el5.x86_64.rpm rpm-python-4.4.2.3-18.el5.x86_64.rpm sed-4.1.5-5.fc6.x86_64.rpm setup-2.5.58-7.el5.noarch.rpm sgpio-1.2.0_10-2.el5.x86_64.rpm shadow-utils-4.0.17-15.el5.x86_64.rpm sqlite-3.3.6-5.x86_64.rpm sysklogd-1.4.1-46.el5.x86_64.rpm SysVinit-2.86-15.el5.x86_64.rpm tar-1.15.1-30.el5.x86_64.rpm tcp_wrappers-7.6-40.7.el5.x86_64.rpm termcap-5.5-1.20060701.1.noarch.rpm testrun.sh tzdata-2010e-1.el5.noarch.rpm udev-095-14.21.el5.x86_64.rpm util-linux-2.13-0.52.el5_4.1.x86_64.rpm wget-1.11.4-2.el5_4.1.x86_64.rpm yum-3.2.22-26.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm yum-metadata-parser-1.1.2-3.el5.centos.x86_64.rpm zlib-1.2.3-3.x86_64.rpm [root@vm2 centos-micro]#