I've been searching the web and one
solution seems to be making a
kickstart script that will intall only
the necessary packages. But I find
this difficult and have several doubts
about how to maintain the system
dependencies afterwards.
Making a kickstart file is not so hard: look in /root of one of your installed servers for a file called anaconda-ks.cfg. That is a kickstart file to make a new server looking like the existing one. Every RH, Fedora or CentOS server has that file.
You can edit the file in system-config-kickstart if you are unfamiliar with writing kickstart files. You do need X for that though.
How do you install minimal Red Hat
servers? Is it Ok to use kickstart or
will I have dependency problems in the
installation or in updates? Is there
any way to avoid installing the
graphical environment for iAS?
You are doing fine with a kickstart file. Kickstart do affect the way you update after installation. During installation, dependencies are calculated automatically. Packages you removed (if that is at all possible) that are needed anyway are added. You cannot install a system with broken dependencies for the system. Dependencies for Oracle is a complete different matter though.
If Oracle needs a graphical environment (and it does, I know it sucks, but it does), you have no option but to install X. However, afaik, Oracle needs X because it has a graphical installer. You do not need X afterwards. So after install, you can remove X.
In my shop we only install a very minimal set of X libraries, btw. Just enough to run xclock (and thus the installer) remotely with X forwarding. That's enough.
Oracle has more insane dependencies. There are some ancient C library compat packages the Oracle installer needs. Not because it actually needs them, but because the zip implementation they ship needs them. Why do they ship that zip implementation? Rumor has it, that the very old zip implementation Oracle ships has more favorable licensing terms (as in: it's not GPL'ed), so they refuse to use a newer implementation. Just rumors though, never heard confirmation...
On every host I setup I install these.
apt-get install openssh-server sudo screen iproute resolvconf \
build-essential tcpdump vlan mii-diag firehol \
apticron atsar ethtool denyhosts rdist bzip2 xclip \
etckeeper git-core less unzip mtr-tiny curl gdebi-core \
xbase-clients rsync psmisc iperf lshw wget pastebinit
Best Answer
Well, if you were to compile from nothing but source code and a cross compiler... the full kernel and API (libraries+headers), glibc, coreutils, gcc/binutils and a few necessary tools, you would typically be left with about a 600MB or so distro. Add to that your distro's choice of package management and default utilities you can see where your disk utilization is coming from. Micro/gutted distributions typically rip out all lib/binary debugging symbols and compile a smaller libc (such as dietlibc). They may also omit a full compile environment which sucks up a significant amount of disk space.
It is possible to compile a fully bootable x86 linux operating system in about 6MB of disk space. Make some further modifications and you can cram it in just a few hundred K of embedded flash. Take a look at tinycore/ucore linux. It is built off of fltk and I believe dietlibc (8MB with X, 6MB without).