As you might expect, CentOS 7 has its package differences from CentOS 6. What does looks like from the ground, though? There have been a number of changes, as you might expect.
Well, let's start with my base-level kickstart file which sets up a fairly minimal system:
# Standard CentOS kickstart configuration.
authconfig --enableshadow --passalgo=sha512
install
reboot
eula --agreed
# Since we want to install packages that aren't on the minimal disc, we can't actually install from the disc. We can't
# specify additional repo entries that are Base, as they get ignored (name collision).
url --mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os
firewall --enabled --service=ssh
firstboot --disable
ignoredisk --only-use=sda,sdb,sdc
keyboard --vckeymap=us --xlayouts='us'
lang en_US.UTF-8
network --bootproto dhcp --device=eth0 --noipv6
repo --name=Base --mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os --cost=100
repo --name=Updates --mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates --cost=90
rootpw --iscrypted __PASSWORD_HASH_GOES_HERE__
selinux --enforcing
services --enabled="chronyd"
timezone --utc America/Los_Angeles --isUtc
bootloader --append="rhgb quiet crashkernel=auto" --location=mbr --driveorder="sda,sdb,sdc" --boot-drive=sda
zerombr
clearpart --all --initlabel
part /boot --fstype=ext4 --size=128 --ondrive=sda
part swap --size=256 --ondrive=sda
part / --fstype=ext4 --grow --ondrive=sda
part /var --fstype=ext4 --grow --ondrive=sdb
part /tmp --fstype=ext4 --grow --ondrive=sdc
%packages --nobase
@core
# No need for Adaptec drivers.
-aic94xx-firmware
# No need for sound drivers.
-alsa-*
# No need for firmware loaders.
-fxload
# No need for IBM Power Linux RAID drivers.
-iprutils
# No need for PVR drivers.
-ivtv-firmware
# No need for wireless drivers.
-iwl*-firmware
-NetworkManager*
-wpa_supplicant
# No need for Infiniband drivers.
-rdma
# No need for network teaming.
-jansson
-libnl3
-libnl3-cli
-libteam
-teamd
# No need for virtualization utilities
-tuned
-virt-what
# VMware kernel compilation requirements.
gcc
kernel-headers
# Useful utilities.
deltarpm
man
rsync
%end
%pre
%end
%post
# Declare that the disks don't support SMART.
/bin/cat /etc/tempfiles.d/disable_smart.conf <<EOF
w /sys/devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/port-2:0/end_device-2:0/target2:0:0/2:0:0:0/scsi_disk/2:0:0:0/max_write_same_blocks - - - - 0
w /sys/devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/port-2:1/end_device-2:1/target2:0:1/2:0:1:0/scsi_disk/2:0:1:0/max_write_same_blocks - - - - 0
w /sys/devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/port-2:2/end_device-2:2/target2:0:2/2:0:2:0/scsi_disk/2:0:2:0/max_write_same_blocks - - - - 0
EOF
%end
Naturally, if you're going to use this as a template, you would make changes as appropriate to your own system (particularly, I'd imagine, the disk configuration).
A couple of notes:
- You may notice that I don't do much in the way of system configuration here. That's because it makes more sense to use a configuration management tool to configure systems, so the base kickstart configuration file tries to target system-level stuff.
- I use a multi-partition layout to "sandbox" the partitions that have a potential to grow out of control. I don't want /var or /tmp filling up to bring the entire system down. As a bonus, since this is a virtualized system, this allows me to grow the three partitions as needed relatively easily (since they're all located at the end of their respective disks).
- This is a base kickstart configuration, so other derived configurations will naturally have additional packages and post-install instructions.
Packages that have been removed from CentOS 7 (notes sometimes pulled from this page):
| Removed packages | |
|---|---|
| Package | Note |
| attr | |
| b43-openfwwf | |
| bzip2 | |
| checkpolicy | |
| cloog-ppl | |
| coreutils-libs | |
| cyrus-sasl | |
| dash | Looks like CentOS gave up on the dash experiment. |
| db4 | → libdb |
| db4-utils | → libdb-utils |
| dracut-kernel | → dracut |
| efibootmgr | |
| gamin | |
| groff | → groff-base |
| grub | → grub2, grub2-tools |
| iptables-ipv6 | |
| kernel-firmware | → linux-firmware |
| libnih | |
| libudev | |
| libusb | |
| m4 | |
| MAKEDEV | |
| man | → man-db |
| mingetty | → util-linux |
| module-init-tools | |
| mysql-libs | → mariadb-libs |
| net-tools | |
| perl-Module-Pluggable | |
| perl-version | |
| ppl | |
| procps | → procps-ng |
| psmisc | |
| system-config-firewall-base | → firewalld |
| udev | |
| upstart | |
| util-linux-ng | → util-linux |
| xz-lzma-compat | |
| yum-presto | |
Meanwhile, the number of added packages is fairly considerable:
| Added packages | |
|---|---|
| Package | Note |
| authconfig | |
| bind-libs-lite | |
| bind-license | |
| biosdevname | |
| btrfs-progs | Mmm... btrfs. |
| centos-logos | ← redhat-logos |
| chrony | |
| cryptsetup-libs | |
| dbus | |
| dbus-python | |
| dhcp-libs | |
| dracut-config-rescue | |
| dracut-network | |
| ebtables | Required by firewalld. |
| elfutils-libs | |
| firewalld | ← system-config-firewall-base |
| freetype | Required by grub2. |
| gettext | |
| gettext-libs | |
| gobject-introspection | |
| groff-base | ← groff |
| grub2 | ← grub |
| grub2-tools | ← grub |
| hardlink | |
| hostname | |
| irqbalance | |
| json-c | |
| kbd-legacy | |
| kernel-devel | |
| kernel-tools | |
| kernel-tools-libs | |
| kexec-tools | |
| kmod | |
| kmod-libs | |
| kpartx | |
| libassuan | |
| libcroco | |
| libdaemon | |
| libdb | ← db4 |
| libdb-utils | ← db4-utils |
| libestr | |
| libmnl | |
| libmount | |
| libmpc | |
| libnetfilter_conntrack | |
| libnfnetlink | |
| libpipeline | |
| libpwquality | |
| libselinux-python | |
| libsysfs | |
| libunistring | |
| libverto | |
| linux-firmware | ← kernel-firmware |
| lzo | |
| man-db | ← man |
| mariadb-libs | ← mysql-libs |
| microcode_ctl | |
| newt-python | |
| numactl-libs | |
| openssl-libs | |
| os-prober | |
| perl-Carp | |
| perl-constant | |
| perl-Encode | |
| perl-Exporter | |
| perl-File-Path | |
| perl-File-Temp | |
| perl-Filter | |
| perl-Getopt-Long | |
| perl-HTTP-Tiny | |
| perl-macros | |
| perl-parent | |
| perl-PathTools | |
| perl-podlators | |
| perl-Pod-Perldoc | |
| perl-Pod-Usage | |
| perl-Scalar-List-Utils | |
| perl-Socket | |
| perl-Storable | |
| perl-Text-ParseWords | |
| perl-threads | |
| perl-threads-shared | |
| perl-Time-HiRes | |
| perl-Time-Local | |
| procps-ng | ← procps |
| pygobject3-base | |
| pyliblzma | |
| python-decorator | |
| python-slip | |
| python-slip-dbus | |
| pyxattr | |
| qrencode-libs | |
| rpm-build-libs | |
| snappy | |
| systemd | CentOS 7 moves away from Sys V-style daemon management. |
| systemd-libs | |
| systemd-sysv | |
| util-linux | ← util-linux-ng |
| xfsprogs | |
Disk usage is comparable to CentOS 6, even with the additional packages (many of which I expect are a result of refactoring). And several of those new packages will require further investigation, to see how well the new functionality works.