11

I am looking for the bare minimum packages that I need to install for a fedora Linux machine. I do not need the X Window System or anything else. The machine will be used as a server and managed remotely using SSH.

My thoughts around this was to install only what is required to get the machine working and then use yum to install any of the services I do need.

Any suggestions about which packages to select during initial install to ensure the installation is as streamlined and compact as possible?

PS: I don't want to change from Fedora since I have ext4 partitions and none of the other distributions I have access to support these out of the box. Also I know how to configure it quite well at this point.

1
  • Great thread that followed this question! Thanks everyone! ;-)
    – ForgeMan
    Sep 9, 2009 at 3:43

3 Answers 3

10

If you edit the initial boot screen on FC11 and then enter text I believe it install the minimal components required as you cant change that default package selection.

eg:

  1. Boot DVD media
  2. At prompt press tab to bring up grub options
  3. Add text so that the line reads: vmlinuz initrd=initrd.img text
  4. Hit enter to run through installer
  5. After all options entered, sit back and watch 179 packages install :)

My extra steps:

  1. Edit /etc/yum.repos.d/*.repo to local repository cache
  2. run: yum update
  3. Run yum to install any required packages

Update 1

Creating the basic ks.cfg that was just suggessted by wzzrd (with some modifications to get it to work) and using the boot option:

vmlinuz initrd=initrd.img headless ks=floppy 

This installs the same 179 packages.

Update 2

If wanting to use a custom partition then you have to boot into graphical mode

eg:

  1. Boot DVD media
  2. At prompt press enter to boot into graphical mode
  3. Run through the installer doing what is required
  4. When it comes to package selection ensure everything is unticked. NOTE: Even if you untick sudo it will always be selected
  5. Now you can wait for the installer to complete it's task

The following lists the packages from the text based installation method:

acl-2.2.47-4.fc11.x86_64
attr-2.4.43-3.fc11.x86_64
audit-1.7.12-4.fc11.x86_64
audit-libs-1.7.12-4.fc11.x86_64
authconfig-5.4.10-1.fc11.x86_64
basesystem-10.0-2.noarch
bash-4.0-6.fc11.x86_64
bzip2-1.0.5-5.fc11.x86_64
bzip2-libs-1.0.5-5.fc11.x86_64
ca-certificates-2008-8.noarch
checkpolicy-2.0.19-2.fc11.x86_64
chkconfig-1.3.42-1.x86_64
coreutils-7.2-1.fc11.x86_64
cpio-2.9.90-5.fc11.x86_64
cracklib-2.8.13-4.x86_64
cracklib-dicts-2.8.13-4.x86_64
crda-1.0.1_2009.03.09-9.fc11.x86_64
cronie-1.2-7.fc11.x86_64
crontabs-1.10-29.fc11.noarch
curl-7.19.4-7.fc11.x86_64
cyrus-sasl-lib-2.1.22-22.fc11.x86_64
db4-4.7.25-11.fc11.x86_64
db4-utils-4.7.25-11.fc11.x86_64
dbus-1.2.12-1.fc11.x86_64
dbus-glib-0.80-2.fc11.x86_64
dbus-libs-1.2.12-1.fc11.x86_64
dbus-python-0.83.0-5.fc11.x86_64
device-mapper-1.02.31-4.fc11.x86_64
device-mapper-libs-1.02.31-4.fc11.x86_64
dhclient-4.1.0-20.fc11.x86_64
diffutils-2.8.1-23.fc11.x86_64
dirmngr-1.0.2-2.fc11.x86_64
dmraid-1.0.0.rc15-7.fc11.x86_64
e2fsprogs-1.41.4-10.fc11.x86_64
e2fsprogs-libs-1.41.4-10.fc11.x86_64
efibootmgr-0.5.4-6.fc11.x86_64
elfutils-libelf-0.140-2.fc11.x86_64
ethtool-6-4.20090306git.fc11.x86_64
exim-4.69-10.fc11.x86_64
expat-2.0.1-6.x86_64
fedora-logos-11.0.6-1.fc11.noarch
fedora-release-11-1.noarch
file-5.03-1.fc11.x86_64
file-libs-5.03-1.fc11.x86_64
filesystem-2.4.21-1.fc11.x86_64
findutils-4.4.0-2.fc11.x86_64
fipscheck-1.1.1-1.fc11.x86_64
gamin-0.1.10-4.fc11.x86_64
gawk-3.1.6-5.fc11.x86_64
gdbm-1.8.0-31.fc11.x86_64
glib2-2.20.1-1.fc11.x86_64
glibc-2.10.1-2.x86_64
glibc-common-2.10.1-2.x86_64
gnupg2-2.0.11-1.fc11.x86_64
gpgme-1.1.7-2.fc11.x86_64
grep-2.5.3-4.fc11.x86_64
grub-0.97-50.fc11.x86_64
grubby-6.0.86-2.fc11.x86_64
gzip-1.3.12-9.fc11.x86_64
hwdata-0.225-1.fc11.noarch
info-4.13a-2.fc11.x86_64
initscripts-8.95-1.x86_64
iproute-2.6.29-2.fc11.x86_64
iptables-1.4.3.1-1.fc11.x86_64
iptables-ipv6-1.4.3.1-1.fc11.x86_64
iputils-20071127-8.fc11.x86_64
isomd5sum-1.0.5-2.fc11.x86_64
iw-0.9.11-1.fc11.x86_64
kbd-1.15-7.fc11.x86_64
kernel-2.6.29.4-167.fc11.x86_64
kernel-firmware-2.6.29.4-167.fc11.noarch
keyutils-libs-1.2-5.fc11.x86_64
kpartx-0.4.8-10.fc11.x86_64
krb5-libs-1.6.3-20.fc11.x86_64
less-429-1.fc11.x86_64
libacl-2.2.47-4.fc11.x86_64
libattr-2.4.43-3.fc11.x86_64
libcap-2.16-2.fc11.x86_64
libcurl-7.19.4-7.fc11.x86_64
libffi-3.0.5-2.fc11.x86_64
libgcc-4.4.0-4.x86_64
libgcrypt-1.4.4-4.fc11.x86_64
libgpg-error-1.6-3.x86_64
libidn-1.9-4.x86_64
libksba-1.0.5-2.fc11.x86_64
libnl-1.1-6.fc11.x86_64
libpng-1.2.35-1.fc11.x86_64
libselinux-2.0.80-1.fc11.x86_64
libselinux-utils-2.0.80-1.fc11.x86_64
libsemanage-2.0.31-4.fc11.x86_64
libsepol-2.0.36-1.fc11.x86_64
libssh2-1.0-2.fc11.x86_64
libstdc++-4.4.0-4.x86_64
libusb-0.1.12-21.fc11.x86_64
libuser-0.56.9-3.x86_64
libvolume_id-141-3.fc11.x86_64
libxml2-2.7.3-2.fc11.x86_64
linux-atm-libs-2.5.0-9.x86_64
logrotate-3.7.8-2.fc11.x86_64
lua-5.1.4-2.fc11.x86_64
lvm2-2.02.45-4.fc11.x86_64
m4-1.4.12-2.fc11.x86_64
MAKEDEV-3.24-3.x86_64
mdadm-3.0-0.devel3.7.fc11.x86_64
mingetty-1.08-3.fc11.x86_64
mkinitrd-6.0.86-2.fc11.x86_64
module-init-tools-3.7-9.fc11.x86_64
nash-6.0.86-2.fc11.x86_64
ncurses-5.7-2.20090207.fc11.x86_64
ncurses-base-5.7-2.20090207.fc11.x86_64
ncurses-libs-5.7-2.20090207.fc11.x86_64
net-tools-1.60-92.fc11.x86_64
newt-0.52.10-3.fc11.x86_64
newt-python-0.52.10-3.fc11.x86_64
nspr-4.7.3-5.fc11.x86_64
nss-3.12.3-4.fc11.x86_64
nss-softokn-freebl-3.12.3-4.fc11.x86_64
openldap-2.4.15-3.fc11.x86_64
openssh-5.2p1-2.fc11.x86_64
openssh-server-5.2p1-2.fc11.x86_64
openssl-0.9.8k-1.fc11.x86_64
pam-1.0.91-6.fc11.x86_64
parted-1.8.8-17.fc11.x86_64
passwd-0.76-2.fc11.x86_64
pciutils-3.1.2-4.fc11.x86_64
pciutils-libs-3.1.2-4.fc11.x86_64
pcre-7.8-2.fc11.x86_64
perl-5.10.0-68.fc11.x86_64
perl-libs-5.10.0-68.fc11.x86_64
perl-Module-Pluggable-3.60-68.fc11.x86_64
perl-Pod-Escapes-1.04-68.fc11.x86_64
perl-Pod-Simple-3.07-68.fc11.x86_64
perl-version-0.74-68.fc11.x86_64
pinentry-0.7.4-6.fc11.x86_64
plymouth-0.7.0-0.2009.05.15.1.fc11.x86_64
plymouth-libs-0.7.0-0.2009.05.15.1.fc11.x86_64
plymouth-scripts-0.7.0-0.2009.05.15.1.fc11.x86_64
policycoreutils-2.0.62-12.6.fc11.x86_64
popt-1.13-5.fc11.x86_64
procps-3.2.7-27.fc11.x86_64
psmisc-22.6-9.fc11.x86_64
pth-2.0.7-8.x86_64
pygpgme-0.1-12.20090121bzr54.fc11.x86_64
python-2.6-7.fc11.x86_64
python-iniparse-0.3.0-2.fc11.noarch
python-libs-2.6-7.fc11.x86_64
python-urlgrabber-3.0.0-15.fc11.noarch
readline-5.2-14.fc11.x86_64
rhpl-0.221-1.x86_64
rootfiles-8.1-5.fc11.noarch
rpm-4.7.0-1.fc11.x86_64
rpm-libs-4.7.0-1.fc11.x86_64
rpm-python-4.7.0-1.fc11.x86_64
rsyslog-3.21.11-1.fc11.x86_64
sed-4.1.5-12.fc11.x86_64
selinux-policy-3.6.12-39.fc11.noarch
selinux-policy-targeted-3.6.12-39.fc11.noarch
setserial-2.17-23.fc11.x86_64
setup-2.8.3-1.fc11.noarch
shadow-utils-4.1.2-13.fc11.x86_64
slang-2.1.4-3.fc11.x86_64
sqlite-3.6.12-3.fc11.x86_64
sudo-1.6.9p17-6.fc11.x86_64
system-config-firewall-tui-1.2.16-2.fc11.noarch
system-config-network-tui-1.5.97-1.fc11.noarch
sysvinit-tools-2.86-27.x86_64
tar-1.22-2.fc11.x86_64
tcp_wrappers-libs-7.6-55.fc11.x86_64
tzdata-2009f-1.fc11.noarch
udev-141-3.fc11.x86_64
upstart-0.3.9-24.fc11.x86_64
usermode-1.100-2.x86_64
ustr-1.0.4-8.fc11.x86_64
util-linux-ng-2.14.2-8.fc11.x86_64
vim-minimal-7.2.148-1.fc11.x86_64
wireless-tools-29-4.fc11.x86_64
yum-3.2.22-4.fc11.noarch
yum-metadata-parser-1.1.2-12.fc11.x86_64
zlib-1.2.3-22.fc11.x86_64

The following lists the extra packages from the graphical install:

at-3.1.10-30.fc11.x86_64
avahi-autoipd-0.6.25-1.fc11.x86_64
bc-1.06-34.fc11.x86_64
bind-libs-9.6.1-0.3.b1.fc11.x86_64
bind-utils-9.6.1-0.3.b1.fc11.x86_64
ConsoleKit-0.3.0-8.fc11.x86_64
ConsoleKit-libs-0.3.0-8.fc11.x86_64
cryptsetup-luks-1.0.6-7.fc11.x86_64
cyrus-sasl-plain-2.1.22-22.fc11.x86_64
dmidecode-2.10-1.36.fc11.1.x86_64
dnsmasq-2.46-2.fc11.x86_64
ed-1.1-2.fc11.x86_64
groff-1.18.1.4-17.fc11.x86_64
hal-0.5.12-26.20090226git.fc11.x86_64
hal-info-20090414-1.fc11.noarch
hal-libs-0.5.12-26.20090226git.fc11.x86_64
hdparm-9.12-1.fc11.x86_64
hunspell-1.2.8-4.fc11.x86_64
hunspell-en-0.20090216-2.fc11.noarch
libdaemon-0.13-2.fc11.x86_64
libpcap-0.9.8-4.fc11.x86_64
libudev0-141-3.fc11.x86_64
libx86-1.1-4.fc11.x86_64
lsof-4.81-3.fc11.x86_64
lzma-4.32.7-2.fc11.x86_64
lzma-libs-4.32.7-2.fc11.x86_64
mailcap-2.1.29-2.fc11.noarch
man-1.6f-17.fc11.x86_64
NetworkManager-0.7.1-4.git20090414.fc11.x86_64
NetworkManager-glib-0.7.1-4.git20090414.fc11.x86_64
ntsysv-1.3.42-1.x86_64
pm-utils-1.2.5-2.fc11.x86_64
PolicyKit-0.9-6.fc11.x86_64
ppp-2.4.4-11.fc11.x86_64
psacct-6.3.2-53.fc11.x86_64
quota-3.17-4.fc11.x86_64
radeontool-1.5-5.fc11.x86_64
tcp_wrappers-7.6-55.fc11.x86_64
tmpwatch-2.9.14-1.x86_64
traceroute-2.0.12-2.fc11.x86_64
vbetool-1.1-3.fc11.x86_64
wpa_supplicant-0.6.8-1.fc11.x86_64
5
  • Awesome. Exactly what I was looking for. Sep 8, 2009 at 7:37
  • 1
    While close, this is not entirely true. The above recipe installs @Base, which is not the bare minimum. @core is.
    – wzzrd
    Sep 8, 2009 at 8:39
  • @wzzrd - Maybe you can tell us how to run @core from the grub menu then? I would be interested to know this to further reduce the on-disk footprint of a vanilla FC install
    – Wayne
    Sep 8, 2009 at 8:47
  • @Wayne, I don't think you can.
    – wzzrd
    Sep 8, 2009 at 9:03
  • There is only one snag with this particular installation method, you can't manage the partitions before installation. My problem is that a portion of the drive is part of an LVM and I can't afford to lose the data :( Sep 8, 2009 at 15:46
9

Wayne's post actually installs a bit more than the actual bare minimum, but is pretty close.

The actual, working way of installing a bare minimum Red Hat based machine is using a kickstart file, and at the package selection section, write this:

%packages --nobase --excludedocs
@Core
yum
rpm

This way, you get the actual, bare minimum of packages excluding system documentation! There are some other, small dependencies you might want to install here, so you'll have to try this out a couple of times to get the exact install you want. It'll probably end up looking more like:

%packages --nobase --excludedocs
@Core
yum
rpm
e2fsprogs
openssh-server
grub
lvm2

Mind you, I'm cannot check the contents of the @Core group here and I'm doing this by heart, so some of the packages I mentioned in the second stanza might actually be in @Core already.

7
  • Aggh, the kickstart method, I thought there was some wizbang magic we could enter in grub!
    – Wayne
    Sep 8, 2009 at 9:00
  • Nice solution but for my needs Wayne's method is just enough and simple to remember. I am not at kick start level yet, however thanks for this, it is definitely useful for others. Sep 8, 2009 at 9:09
  • After testing my method, the anaconda-ks.cfg file that is autogenerated has %packages @core as the last two lines, so maybe it does just install the core?
    – Wayne
    Sep 8, 2009 at 9:23
  • @Wayne, really? Installing in text mode, generates a kickstart with only @core mentioned? That is interesting. I didn't know that. Cool. Thanks for the information!
    – wzzrd
    Sep 8, 2009 at 9:25
  • yeah, and creating a kickstart file with only %packages @core wanted to install 410 packages during graphical boot. Will try again in text mode, but have to add bootloader information.
    – Wayne
    Sep 8, 2009 at 9:33
1

You could try the respin method if you absolutely don't want to use kickstart: http://www.techotopia.com/index.php/Create_Your_Own_Fedora_Distribution_with_Revisor

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .