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.