CentOS 8.3 -> AlmaLinux 8.3 Migration

Yesterday I went to Micro Center and bought another refurbished Lenovo M83 Tiny Computer for CentOS replacement testing. I’d used a break in the action in that quest as an opportunity to test some other things using the one I already had, and decided I liked one of them (OpenMediaVault) enough to keep it installed. So I bought another to continue the CentOS-replacement tests.

If nothing else, it filled an empty space in my rack.

Yesterday’s test was to simulate an AlmaLinux installation on a host that doesn’t offer a minimal AlmaLinux image, using a minimal CentOS 8.3 image. My host does allow me to install whatever OS I want using own ISO, but not everyone is in that situation. Also, it would just be easier to start with an image that they already offer.

I started with a minimal Centos 8.3 installation. Then I installed wget, htop, nut (necessary in my own local installation because the 40W Tiny PC doesn’t justify its own UPS), and yum-utils. Then I ran almalinux-deploy.

The migration took about five minutes and was successful. Post-migration, I ran repoquery -a -- installed. Here’s the output:

[root@almalinux ~]# repoquery -a --installed
NetworkManager-1:1.26.0-13.el8_3.x86_64
NetworkManager-libnm-1:1.26.0-13.el8_3.x86_64
NetworkManager-team-1:1.26.0-13.el8_3.x86_64
NetworkManager-tui-1:1.26.0-13.el8_3.x86_64
PackageKit-0:1.1.12-6.el8.x86_64
PackageKit-glib-0:1.1.12-6.el8.x86_64
abattis-cantarell-fonts-0:0.0.25-4.el8.noarch
acl-0:2.2.53-1.el8.x86_64
almalinux-logos-0:81.2-1.el8.x86_64
almalinux-release-0:8.3-3.el8.x86_64
audit-0:3.0-0.17.20191104git1c2f876.el8.x86_64
audit-libs-0:3.0-0.17.20191104git1c2f876.el8.x86_64
authselect-0:1.2.1-2.el8.x86_64
authselect-libs-0:1.2.1-2.el8.x86_64
basesystem-0:11-5.el8.noarch
bash-0:4.4.19-12.el8.x86_64
bind-export-libs-32:9.11.20-5.el8.x86_64
biosdevname-0:0.7.3-2.el8.x86_64
brotli-0:1.0.6-2.el8.x86_64
bzip2-0:1.0.6-26.el8.x86_64
bzip2-libs-0:1.0.6-26.el8.x86_64
c-ares-0:1.13.0-5.el8.x86_64
ca-certificates-0:2020.2.41-80.0.el8_2.noarch
cairo-0:1.15.12-3.el8.x86_64
cairo-gobject-0:1.15.12-3.el8.x86_64
checkpolicy-0:2.9-1.el8.x86_64
chkconfig-0:1.13-2.el8.x86_64
chrony-0:3.5-1.1.el8.x86_64
clevis-0:13-3.el8.x86_64
clevis-luks-0:13-3.el8.x86_64
cockpit-bridge-0:224.2-1.el8.x86_64
cockpit-packagekit-0:224.2-1.el8.noarch
cockpit-podman-0:18.1-2.module_el8.3.0+6173+7b720323.noarch
cockpit-storaged-0:224.2-1.el8.noarch
cockpit-system-0:224.2-1.el8.noarch
cockpit-ws-0:224.2-1.el8.x86_64
conmon-2:2.0.20-2.module_el8.3.0+6173+7b720323.x86_64
container-selinux-2:2.144.0-1.module_el8.3.0+6173+7b720323.noarch
containernetworking-plugins-0:0.8.6-2.module_el8.3.0+6173+7b720323.x86_64
containers-common-1:1.1.1-3.module_el8.3.0+6173+7b720323.x86_64
coreutils-0:8.30-8.el8.x86_64
coreutils-common-0:8.30-8.el8.x86_64
cpio-0:2.12-8.el8.x86_64
cracklib-0:2.9.6-15.el8.x86_64
cracklib-dicts-0:2.9.6-15.el8.x86_64
criu-0:3.14-2.module_el8.3.0+6173+7b720323.x86_64
cronie-0:1.5.2-4.el8.x86_64
cronie-anacron-0:1.5.2-4.el8.x86_64
crontabs-0:1.11-16.20150630git.el8.noarch
crypto-policies-0:20200713-1.git51d1222.el8.noarch
crypto-policies-scripts-0:20200713-1.git51d1222.el8.noarch
cryptsetup-0:2.3.3-2.el8.x86_64
cryptsetup-libs-0:2.3.3-2.el8.x86_64
curl-0:7.61.1-14.el8_3.1.x86_64
cyrus-sasl-lib-0:2.1.27-5.el8.x86_64
dbus-1:1.12.8-12.el8_3.x86_64
dbus-common-1:1.12.8-12.el8_3.noarch
dbus-daemon-1:1.12.8-12.el8_3.x86_64
dbus-glib-0:0.110-2.el8.x86_64
dbus-libs-1:1.12.8-12.el8_3.x86_64
dbus-tools-1:1.12.8-12.el8_3.x86_64
dbxtool-0:8-5.el8_3.2.x86_64
dejavu-fonts-common-0:2.35-6.el8.noarch
dejavu-sans-mono-fonts-0:2.35-6.el8.noarch
device-mapper-8:1.02.171-5.el8_3.2.x86_64
device-mapper-event-8:1.02.171-5.el8_3.2.x86_64
device-mapper-event-libs-8:1.02.171-5.el8_3.2.x86_64
device-mapper-libs-8:1.02.171-5.el8_3.2.x86_64
device-mapper-multipath-0:0.8.4-5.el8.x86_64
device-mapper-multipath-libs-0:0.8.4-5.el8.x86_64
device-mapper-persistent-data-0:0.8.5-4.el8.x86_64
dhcp-client-12:4.3.6-41.el8.x86_64
dhcp-common-12:4.3.6-41.el8.noarch
dhcp-libs-12:4.3.6-41.el8.x86_64
diffutils-0:3.6-6.el8.x86_64
dmidecode-1:3.2-6.el8.x86_64
dnf-0:4.2.23-4.el8.noarch
dnf-data-0:4.2.23-4.el8.noarch
dnf-plugin-subscription-manager-0:1.27.18-1.el8_3.alma.x86_64
dnf-plugins-core-0:4.0.17-5.el8.noarch
dosfstools-0:4.1-6.el8.x86_64
dracut-0:049-95.git20200804.el8_3.4.x86_64
dracut-config-rescue-0:049-95.git20200804.el8_3.4.x86_64
dracut-network-0:049-95.git20200804.el8_3.4.x86_64
dracut-squash-0:049-95.git20200804.el8_3.4.x86_64
e2fsprogs-0:1.45.6-1.el8.x86_64
e2fsprogs-libs-0:1.45.6-1.el8.x86_64
efi-filesystem-0:3-2.el8.alma.noarch
efibootmgr-0:16-1.el8.x86_64
efivar-0:37-4.el8.x86_64
efivar-libs-0:37-4.el8.x86_64
elfutils-debuginfod-client-0:0.180-1.el8.x86_64
elfutils-default-yama-scope-0:0.180-1.el8.noarch
elfutils-libelf-0:0.180-1.el8.x86_64
elfutils-libs-0:0.180-1.el8.x86_64
epel-release-0:8-10.el8.noarch
ethtool-2:5.0-2.el8.x86_64
expat-0:2.2.5-4.el8.x86_64
file-0:5.33-16.el8.x86_64
file-libs-0:5.33-16.el8.x86_64
filesystem-0:3.8-3.el8.x86_64
findutils-1:4.6.0-20.el8.x86_64
firewalld-0:0.8.2-2.el8.noarch
firewalld-filesystem-0:0.8.2-2.el8.noarch
fontconfig-0:2.13.1-3.el8.x86_64
fontpackages-filesystem-0:1.44-22.el8.noarch
freeipmi-0:1.6.1-1.el8.x86_64
freetype-0:2.9.1-4.el8_3.1.x86_64
fuse-common-0:3.2.1-12.el8.x86_64
fuse-libs-0:2.9.7-12.el8.x86_64
fuse-overlayfs-0:1.1.2-3.module_el8.3.0+6173+7b720323.x86_64
fuse3-0:3.2.1-12.el8.x86_64
fuse3-libs-0:3.2.1-12.el8.x86_64
gawk-0:4.2.1-1.el8.x86_64
gdbm-1:1.18-1.el8.x86_64
gdbm-libs-1:1.18-1.el8.x86_64
gdisk-0:1.0.3-6.el8.x86_64
gdk-pixbuf2-0:2.36.12-5.el8.x86_64
geolite2-city-0:20180605-1.el8.noarch
geolite2-country-0:20180605-1.el8.noarch
gettext-0:0.19.8.1-17.el8.x86_64
gettext-libs-0:0.19.8.1-17.el8.x86_64
glib-networking-0:2.56.1-1.1.el8.x86_64
glib2-0:2.56.4-8.el8.x86_64
glibc-0:2.28-127.el8_3.2.x86_64
glibc-common-0:2.28-127.el8_3.2.x86_64
glibc-langpack-en-0:2.28-127.el8_3.2.x86_64
gmp-1:6.1.2-10.el8.x86_64
gnupg2-0:2.2.20-2.el8.x86_64
gnupg2-smime-0:2.2.20-2.el8.x86_64
gnutls-0:3.6.14-7.el8_3.x86_64
gobject-introspection-0:1.56.1-1.el8.x86_64
gpgme-0:1.13.1-3.el8.x86_64
grep-0:3.1-6.el8.x86_64
groff-base-0:1.22.3-18.el8.x86_64
grub2-common-1:2.02-90.el8.alma.noarch
grub2-efi-x64-1:2.02-90.el8.alma.x86_64
grub2-tools-1:2.02-90.el8.alma.x86_64
grub2-tools-extra-1:2.02-90.el8.alma.x86_64
grub2-tools-minimal-1:2.02-90.el8.alma.x86_64
grubby-0:8.40-41.el8.x86_64
gsettings-desktop-schemas-0:3.32.0-5.el8.x86_64
gzip-0:1.9-9.el8.x86_64
hardlink-1:1.3-6.el8.x86_64
hdparm-0:9.54-2.el8.x86_64
hostname-0:3.20-6.el8.x86_64
htop-0:3.0.5-1.el8.x86_64
hwdata-0:0.314-8.6.el8.noarch
ima-evm-utils-0:1.1-5.el8.x86_64
info-0:6.5-6.el8.x86_64
initscripts-0:10.00.9-1.el8.x86_64
ipcalc-0:0.2.4-4.el8.x86_64
iproute-0:5.3.0-5.el8.x86_64
iprutils-0:2.4.19-1.el8.x86_64
ipset-0:7.1-1.el8.x86_64
ipset-libs-0:7.1-1.el8.x86_64
iptables-0:1.8.4-15.el8_3.3.x86_64
iptables-ebtables-0:1.8.4-15.el8_3.3.x86_64
iptables-libs-0:1.8.4-15.el8_3.3.x86_64
iputils-0:20180629-2.el8.x86_64
irqbalance-2:1.4.0-4.el8.x86_64
iscsi-initiator-utils-0:6.2.0.878-5.gitd791ce0.el8.x86_64
iscsi-initiator-utils-iscsiuio-0:6.2.0.878-5.gitd791ce0.el8.x86_64
isns-utils-libs-0:0.99-1.el8.x86_64
iwl100-firmware-0:39.31.5.1-101.el8_3.1.noarch
iwl1000-firmware-1:39.31.5.1-101.el8_3.1.noarch
iwl105-firmware-0:18.168.6.1-101.el8_3.1.noarch
iwl135-firmware-0:18.168.6.1-101.el8_3.1.noarch
iwl2000-firmware-0:18.168.6.1-101.el8_3.1.noarch
iwl2030-firmware-0:18.168.6.1-101.el8_3.1.noarch
iwl3160-firmware-1:25.30.13.0-101.el8_3.1.noarch
iwl5000-firmware-0:8.83.5.1_1-101.el8_3.1.noarch
iwl5150-firmware-0:8.24.2.2-101.el8_3.1.noarch
iwl6000-firmware-0:9.221.4.1-101.el8_3.1.noarch
iwl6000g2a-firmware-0:18.168.6.1-101.el8_3.1.noarch
iwl6050-firmware-0:41.28.5.1-101.el8_3.1.noarch
iwl7260-firmware-1:25.30.13.0-101.el8_3.1.noarch
jansson-0:2.11-3.el8.x86_64
jose-0:10-2.el8.x86_64
jq-0:1.5-12.el8.x86_64
json-c-0:0.13.1-0.2.el8.x86_64
json-glib-0:1.4.4-1.el8.x86_64
kbd-0:2.0.4-10.el8.x86_64
kbd-legacy-0:2.0.4-10.el8.noarch
kbd-misc-0:2.0.4-10.el8.noarch
kernel-0:4.18.0-240.15.1.el8_3.x86_64
kernel-core-0:4.18.0-240.15.1.el8_3.x86_64
kernel-modules-0:4.18.0-240.15.1.el8_3.x86_64
kernel-tools-0:4.18.0-240.15.1.el8_3.x86_64
kernel-tools-libs-0:4.18.0-240.15.1.el8_3.x86_64
kexec-tools-0:2.0.20-34.el8_3.2.x86_64
keyutils-libs-0:1.5.10-6.el8.x86_64
kmod-0:25-16.el8_3.1.x86_64
kmod-libs-0:25-16.el8_3.1.x86_64
kpartx-0:0.8.4-5.el8.x86_64
krb5-libs-0:1.18.2-5.el8.x86_64
langpacks-en-0:1.0-12.el8.noarch
less-0:530-1.el8.x86_64
libX11-0:1.6.8-3.el8.x86_64
libX11-common-0:1.6.8-3.el8.noarch
libXau-0:1.0.9-3.el8.x86_64
libXext-0:1.3.4-1.el8.x86_64
libXrender-0:0.9.10-7.el8.x86_64
libacl-0:2.2.53-1.el8.x86_64
libaio-0:0.3.112-1.el8.x86_64
libappstream-glib-0:0.7.14-3.el8.x86_64
libarchive-0:3.3.2-9.el8.x86_64
libassuan-0:2.5.1-3.el8.x86_64
libatasmart-0:0.19-14.el8.x86_64
libattr-0:2.4.48-3.el8.x86_64
libbasicobjects-0:0.1.1-39.el8.x86_64
libblkid-0:2.32.1-24.el8.x86_64
libblockdev-0:2.24-2.el8_3.x86_64
libblockdev-crypto-0:2.24-2.el8_3.x86_64
libblockdev-fs-0:2.24-2.el8_3.x86_64
libblockdev-loop-0:2.24-2.el8_3.x86_64
libblockdev-lvm-0:2.24-2.el8_3.x86_64
libblockdev-mdraid-0:2.24-2.el8_3.x86_64
libblockdev-part-0:2.24-2.el8_3.x86_64
libblockdev-swap-0:2.24-2.el8_3.x86_64
libblockdev-utils-0:2.24-2.el8_3.x86_64
libbytesize-0:1.4-3.el8.x86_64
libcap-0:2.26-4.el8.x86_64
libcap-ng-0:0.7.9-5.el8.x86_64
libcollection-0:0.7.0-39.el8.x86_64
libcom_err-0:1.45.6-1.el8.x86_64
libcomps-0:0.1.11-4.el8.x86_64
libcroco-0:0.6.12-4.el8_2.1.x86_64
libcurl-0:7.61.1-14.el8_3.1.x86_64
libdaemon-0:0.14-15.el8.x86_64
libdb-0:5.3.28-39.el8.x86_64
libdb-utils-0:5.3.28-39.el8.x86_64
libdhash-0:0.5.0-39.el8.x86_64
libdnf-0:0.48.0-5.el8.x86_64
libedit-0:3.1-23.20170329cvs.el8.x86_64
libestr-0:0.1.10-1.el8.x86_64
libevent-0:2.1.8-5.el8.x86_64
libfastjson-0:0.99.8-2.el8.x86_64
libfdisk-0:2.32.1-24.el8.x86_64
libffi-0:3.1-22.el8.x86_64
libgcc-0:8.3.1-5.1.el8.alma.x86_64
libgcrypt-0:1.8.5-4.el8.x86_64
libgomp-0:8.3.1-5.1.el8.alma.x86_64
libgpg-error-0:1.31-1.el8.x86_64
libgudev-0:232-4.el8.x86_64
libidn2-0:2.2.0-1.el8.x86_64
libini_config-0:1.3.1-39.el8.x86_64
libjose-0:10-2.el8.x86_64
libkcapi-0:1.2.0-2.el8.x86_64
libkcapi-hmaccalc-0:1.2.0-2.el8.x86_64
libksba-0:1.3.5-7.el8.x86_64
libldb-0:2.1.3-2.el8.x86_64
libluksmeta-0:9-4.el8.x86_64
libmaxminddb-0:1.2.0-10.el8.x86_64
libmetalink-0:0.1.3-7.el8.x86_64
libmnl-0:1.0.4-6.el8.x86_64
libmodman-0:2.0.1-17.el8.x86_64
libmodulemd-0:2.9.4-2.el8.x86_64
libmount-0:2.32.1-24.el8.x86_64
libndp-0:1.7-3.el8.x86_64
libnet-0:1.1.6-15.el8.x86_64
libnetfilter_conntrack-0:1.0.6-5.el8.x86_64
libnfnetlink-0:1.0.1-13.el8.x86_64
libnfsidmap-1:2.3.3-35.el8.x86_64
libnftnl-0:1.1.5-4.el8.x86_64
libnghttp2-0:1.33.0-3.el8_2.1.x86_64
libnl3-0:3.5.0-1.el8.x86_64
libnl3-cli-0:3.5.0-1.el8.x86_64
libnsl2-0:1.2.0-2.20180605git4a062cf.el8.x86_64
libpath_utils-0:0.2.1-39.el8.x86_64
libpcap-14:1.9.1-4.el8.x86_64
libpipeline-0:1.5.0-2.el8.x86_64
libpng-2:1.6.34-5.el8.x86_64
libproxy-0:0.4.15-5.2.el8.x86_64
libpsl-0:0.20.2-6.el8.x86_64
libpwquality-0:1.4.0-9.el8.x86_64
libref_array-0:0.1.5-39.el8.x86_64
librepo-0:1.12.0-2.el8.x86_64
libreport-filesystem-0:2.9.5-15.el8.alma.1.x86_64
libseccomp-0:2.4.3-1.el8.x86_64
libsecret-0:0.18.6-1.el8.x86_64
libselinux-0:2.9-4.el8_3.x86_64
libselinux-utils-0:2.9-4.el8_3.x86_64
libsemanage-0:2.9-3.el8.x86_64
libsepol-0:2.9-1.el8.x86_64
libsigsegv-0:2.11-5.el8.x86_64
libslirp-0:4.3.1-1.module_el8.3.0+6173+7b720323.x86_64
libsmartcols-0:2.32.1-24.el8.x86_64
libsolv-0:0.7.11-1.el8.x86_64
libsoup-0:2.62.3-2.el8.x86_64
libss-0:1.45.6-1.el8.x86_64
libssh-0:0.9.4-2.el8.x86_64
libssh-config-0:0.9.4-2.el8.noarch
libsss_autofs-0:2.3.0-9.el8.x86_64
libsss_certmap-0:2.3.0-9.el8.x86_64
libsss_idmap-0:2.3.0-9.el8.x86_64
libsss_nss_idmap-0:2.3.0-9.el8.x86_64
libsss_sudo-0:2.3.0-9.el8.x86_64
libstdc++-0:8.3.1-5.1.el8.alma.x86_64
libstemmer-0:0-10.585svn.el8.x86_64
libsysfs-0:2.1.0-24.el8.x86_64
libtalloc-0:2.3.1-2.el8.x86_64
libtasn1-0:4.13-3.el8.x86_64
libtdb-0:1.4.3-1.el8.x86_64
libteam-0:1.31-2.el8.x86_64
libtevent-0:0.10.2-2.el8.x86_64
libtirpc-0:1.1.4-4.el8.x86_64
libtool-ltdl-0:2.4.6-25.el8.x86_64
libudisks2-0:2.9.0-3.el8.x86_64
libunistring-0:0.9.9-3.el8.x86_64
libusb-1:0.1.5-12.el8.x86_64
libusbx-0:1.0.23-4.el8.x86_64
libuser-0:0.62-23.el8.x86_64
libutempter-0:1.1.6-14.el8.x86_64
libuuid-0:2.32.1-24.el8.x86_64
libvarlink-0:18-3.el8.x86_64
libverto-0:0.3.0-5.el8.x86_64
libxcb-0:1.13.1-1.el8.x86_64
libxcrypt-0:4.1.1-4.el8.x86_64
libxkbcommon-0:0.9.1-1.el8.x86_64
libxml2-0:2.9.7-8.el8.x86_64
libyaml-0:0.1.7-5.el8.x86_64
libzstd-0:1.4.4-1.el8.x86_64
linux-firmware-0:20200619-101.git3890db36.el8_3.noarch
logrotate-0:3.14.0-4.el8.x86_64
lshw-0:B.02.19.2-2.el8.x86_64
lsscsi-0:0.30-1.el8.x86_64
lua-libs-0:5.3.4-11.el8.x86_64
luksmeta-0:9-4.el8.x86_64
lvm2-8:2.03.09-5.el8_3.2.x86_64
lvm2-libs-8:2.03.09-5.el8_3.2.x86_64
lz4-libs-0:1.8.3-2.el8.x86_64
lzo-0:2.08-14.el8.x86_64
man-db-0:2.7.6.1-17.el8.x86_64
mdadm-0:4.1-14.el8.x86_64
memstrack-0:0.1.11-1.el8.x86_64
microcode_ctl-4:20200609-2.20201112.1.el8_3.x86_64
mokutil-1:0.3.0-10.el8.x86_64
mozjs60-0:60.9.0-4.el8.x86_64
mpfr-0:3.1.6-1.el8.x86_64
ncurses-0:6.1-7.20180224.el8.x86_64
ncurses-base-0:6.1-7.20180224.el8.noarch
ncurses-libs-0:6.1-7.20180224.el8.x86_64
net-snmp-libs-1:5.8-18.el8_3.1.x86_64
nettle-0:3.4.1-2.el8.x86_64
newt-0:0.52.20-11.el8.x86_64
nftables-1:0.9.3-16.el8.x86_64
npth-0:1.5-4.el8.x86_64
nspr-0:4.25.0-2.el8_2.x86_64
nss-0:3.53.1-17.el8_3.x86_64
nss-softokn-0:3.53.1-17.el8_3.x86_64
nss-softokn-freebl-0:3.53.1-17.el8_3.x86_64
nss-sysinit-0:3.53.1-17.el8_3.x86_64
nss-util-0:3.53.1-17.el8_3.x86_64
numactl-libs-0:2.0.12-11.el8.x86_64
nut-0:2.7.4-26.el8.x86_64
nut-client-0:2.7.4-26.el8.x86_64
oniguruma-0:6.8.2-2.el8.x86_64
openldap-0:2.4.46-15.el8.x86_64
openssh-0:8.0p1-5.el8.x86_64
openssh-clients-0:8.0p1-5.el8.x86_64
openssh-server-0:8.0p1-5.el8.x86_64
openssl-1:1.1.1g-12.el8_3.x86_64
openssl-libs-1:1.1.1g-12.el8_3.x86_64
openssl-pkcs11-0:0.4.10-2.el8.x86_64
os-prober-0:1.74-6.el8.x86_64
p11-kit-0:0.23.14-5.el8_0.x86_64
p11-kit-trust-0:0.23.14-5.el8_0.x86_64
pam-0:1.3.1-11.el8.x86_64
parted-0:3.2-38.el8.x86_64
passwd-0:0.80-3.el8.x86_64
pciutils-libs-0:3.6.4-2.el8.x86_64
pcre-0:8.42-4.el8.x86_64
pcre2-0:10.32-2.el8.x86_64
pigz-0:2.4-4.el8.x86_64
pinentry-0:1.1.0-2.el8.x86_64
pixman-0:0.38.4-1.el8.x86_64
platform-python-0:3.6.8-31.el8.x86_64
platform-python-pip-0:9.0.3-18.el8.noarch
platform-python-setuptools-0:39.2.0-6.el8.noarch
plymouth-0:0.9.4-7.20200615git1e36e30.el8.x86_64
plymouth-core-libs-0:0.9.4-7.20200615git1e36e30.el8.x86_64
plymouth-scripts-0:0.9.4-7.20200615git1e36e30.el8.x86_64
podman-0:2.0.5-5.module_el8.3.0+6173+7b720323.x86_64
podman-catatonit-0:2.0.5-5.module_el8.3.0+6173+7b720323.x86_64
policycoreutils-0:2.9-9.el8.x86_64
policycoreutils-python-utils-0:2.9-9.el8.noarch
polkit-0:0.115-11.el8.x86_64
polkit-libs-0:0.115-11.el8.x86_64
polkit-pkla-compat-0:0.1-12.el8.x86_64
popt-0:1.16-14.el8.x86_64
prefixdevname-0:0.1.0-6.el8.x86_64
procps-ng-0:3.3.15-3.el8.x86_64
protobuf-c-0:1.3.0-4.el8.x86_64
publicsuffix-list-dafsa-0:20180723-1.el8.noarch
python3-audit-0:3.0-0.17.20191104git1c2f876.el8.x86_64
python3-cairo-0:1.16.3-6.el8.x86_64
python3-chardet-0:3.0.4-7.el8.noarch
python3-configobj-0:5.0.6-11.el8.noarch
python3-dateutil-1:2.6.1-6.el8.noarch
python3-dbus-0:1.2.4-15.el8.x86_64
python3-decorator-0:4.2.1-2.el8.noarch
python3-dmidecode-0:3.12.2-15.el8.x86_64
python3-dnf-0:4.2.23-4.el8.noarch
python3-dnf-plugins-core-0:4.0.17-5.el8.noarch
python3-ethtool-0:0.14-3.el8.x86_64
python3-firewall-0:0.8.2-2.el8.noarch
python3-gobject-0:3.28.3-2.el8.x86_64
python3-gobject-base-0:3.28.3-2.el8.x86_64
python3-gpg-0:1.13.1-3.el8.x86_64
python3-hawkey-0:0.48.0-5.el8.x86_64
python3-idna-0:2.5-5.el8.noarch
python3-iniparse-0:0.4-31.el8.noarch
python3-inotify-0:0.9.6-13.el8.noarch
python3-libcomps-0:0.1.11-4.el8.x86_64
python3-libdnf-0:0.48.0-5.el8.x86_64
python3-librepo-0:1.12.0-2.el8.x86_64
python3-libs-0:3.6.8-31.el8.x86_64
python3-libselinux-0:2.9-4.el8_3.x86_64
python3-libsemanage-0:2.9-3.el8.x86_64
python3-libxml2-0:2.9.7-8.el8.x86_64
python3-linux-procfs-0:0.6.2-2.el8.noarch
python3-nftables-1:0.9.3-16.el8.x86_64
python3-perf-0:4.18.0-240.15.1.el8_3.x86_64
python3-pip-wheel-0:9.0.3-18.el8.noarch
python3-policycoreutils-0:2.9-9.el8.noarch
python3-pydbus-0:0.6.0-5.el8.noarch
python3-pysocks-0:1.6.8-3.el8.noarch
python3-pyudev-0:0.21.0-7.el8.noarch
python3-requests-0:2.20.0-2.1.el8.noarch
python3-rpm-0:4.14.3-4.el8.x86_64
python3-schedutils-0:0.6-6.el8.x86_64
python3-setools-0:4.3.0-2.el8.x86_64
python3-setuptools-wheel-0:39.2.0-6.el8.noarch
python3-six-0:1.11.0-8.el8.noarch
python3-slip-0:0.6.4-11.el8.noarch
python3-slip-dbus-0:0.6.4-11.el8.noarch
python3-subscription-manager-rhsm-0:1.27.18-1.el8_3.alma.x86_64
python3-syspurpose-0:1.27.18-1.el8_3.alma.x86_64
python3-systemd-0:234-8.el8.x86_64
python3-unbound-0:1.7.3-14.el8.x86_64
python3-urllib3-0:1.24.2-4.el8.noarch
readline-0:7.0-10.el8.x86_64
rng-tools-0:6.8-3.el8.x86_64
rootfiles-0:8.1-22.el8.noarch
rpm-0:4.14.3-4.el8.x86_64
rpm-build-libs-0:4.14.3-4.el8.x86_64
rpm-libs-0:4.14.3-4.el8.x86_64
rpm-plugin-selinux-0:4.14.3-4.el8.x86_64
rpm-plugin-systemd-inhibit-0:4.14.3-4.el8.x86_64
rsyslog-0:8.1911.0-6.el8.x86_64
runc-0:1.0.0-68.rc92.module_el8.3.0+6173+7b720323.x86_64
sed-0:4.5-2.el8.x86_64
selinux-policy-0:3.14.3-54.el8_3.2.noarch
selinux-policy-targeted-0:3.14.3-54.el8_3.2.noarch
setroubleshoot-plugins-0:3.3.13-1.el8.noarch
setroubleshoot-server-0:3.3.24-1.el8.x86_64
setup-0:2.12.2-6.el8.noarch
sg3_utils-0:1.44-5.el8.x86_64
sg3_utils-libs-0:1.44-5.el8.x86_64
shadow-utils-2:4.6-11.el8.x86_64
shared-mime-info-0:1.9-3.el8.x86_64
shim-x64-0:15-16.el8.alma.x86_64
slang-0:2.3.2-3.el8.x86_64
slirp4netns-0:1.1.4-2.module_el8.3.0+6173+7b720323.x86_64
snappy-0:1.1.8-3.el8.x86_64
sos-0:3.9.1-6.el8.alma.noarch
sqlite-libs-0:3.26.0-11.el8.x86_64
squashfs-tools-0:4.3-19.el8.x86_64
sscg-0:2.3.3-14.el8.x86_64
sssd-client-0:2.3.0-9.el8.x86_64
sssd-common-0:2.3.0-9.el8.x86_64
sssd-kcm-0:2.3.0-9.el8.x86_64
sssd-nfs-idmap-0:2.3.0-9.el8.x86_64
subscription-manager-0:1.27.18-1.el8_3.alma.x86_64
subscription-manager-rhsm-certificates-0:1.27.18-1.el8_3.alma.x86_64
sudo-0:1.8.29-6.el8_3.1.x86_64
systemd-0:239-41.el8_3.1.x86_64
systemd-libs-0:239-41.el8_3.1.x86_64
systemd-pam-0:239-41.el8_3.1.x86_64
systemd-udev-0:239-41.el8_3.1.x86_64
tar-2:1.30-5.el8.x86_64
teamd-0:1.31-2.el8.x86_64
timedatex-0:0.5-3.el8.x86_64
tpm2-tools-0:4.1.1-1.el8.x86_64
tpm2-tss-0:2.3.2-2.el8.x86_64
trousers-0:0.3.14-4.el8.x86_64
trousers-lib-0:0.3.14-4.el8.x86_64
tuned-0:2.14.0-3.el8_3.2.noarch
tzdata-0:2021a-1.el8.noarch
udisks2-0:2.9.0-3.el8.x86_64
udisks2-iscsi-0:2.9.0-3.el8.x86_64
udisks2-lvm2-0:2.9.0-3.el8.x86_64
unbound-libs-0:1.7.3-14.el8.x86_64
usermode-0:1.113-1.el8.x86_64
userspace-rcu-0:0.10.1-2.el8.x86_64
util-linux-0:2.32.1-24.el8.x86_64
vim-minimal-2:8.0.1763-15.el8.x86_64
virt-what-0:1.18-6.el8.x86_64
volume_key-libs-0:0.3.11-5.el8.x86_64
wget-0:1.19.5-10.el8.x86_64
which-0:2.21-12.el8.x86_64
xfsprogs-0:5.0.0-4.el8.x86_64
xkeyboard-config-0:2.28-1.el8.noarch
xz-0:5.2.4-3.el8.x86_64
xz-libs-0:5.2.4-3.el8.x86_64
yum-0:4.2.23-4.el8.noarch
yum-utils-0:4.0.17-5.el8.noarch
zlib-0:1.2.11-16.el8_2.x86_64
[root@almalinux ~]# 

I don’t know if anything in there would interfere with a Virtualmin installation. Maybe @Joe or @Ilia can shed some light on that. I also haven’t attempted to install Virtualmin on it because I’m waiting for native support, rather than having to impersonate CentOS or RHEL.

Impersonating CentOS the previous time I tested AlmaLinux resulted in a Virtualmin system that was stable and ran flawlessly for several weeks, by the way.

It’s my opinion that all that needs to be done to support Almalinux is to tell the installer to recognize and support it. From that point on, it can be treated exactly like RHEL / CentOS, in my opinion.

Some relevant snippets from AlmaLinux:

[root@almalinux ~]# cat /etc/redhat-release
AlmaLinux release 8.3 RC (Purple Manul)

[root@almalinux ~]# cat /etc/os-release
NAME="AlmaLinux"
VERSION="8.3 (Purple Manul)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.3"
PLATFORM_ID="platform:el8"
PRETTY_NAME="AlmaLinux 8.3 RC (Purple Manul)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:almalinux:almalinux:8.3:rc"
HOME_URL="https://almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"

ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8"
ALMALINUX_MANTISBT_PROJECT_VERSION="8.3"

Richard

3 Likes
[root@almalinux ~]# which httpd
/usr/bin/which: no httpd in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which php
/usr/bin/which: no php in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which perl
/usr/bin/which: no perl in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which bind
/usr/bin/which: no bind in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which postfix
/usr/bin/which: no postfix in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which dovecot
/usr/bin/which: no dovecot in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which mysql
/usr/bin/which: no mysql in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which mariadb-server
/usr/bin/which: no mariadb-server in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which postgresql
/usr/bin/which: no postgresql in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which procmail
/usr/bin/which: no procmail in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@almalinux ~]# which spamassassin
/usr/bin/which: no spamassassin in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

Looks pretty clean. If the host doesn’t offer AlmaLinux, I think it will be okay to just install CentOS 8 minimal, and then run the migration tool, and then install Virtualmin. The migration may not result in a strictly minimal AlmaLinux, but it looks awfully close.

Richard

1 Like

So I’m trying to hack the installer to support this. From what I’m looking at, it looks like most of the work will actually be in slib.sh. Is that correct?

Richard

Likely not. I think based on this function (slib/slib.sh at a25e9590322aa6dfe3d8866695ac5310d6a6a0d9 · virtualmin/slib · GitHub), it’ll already return the OS and version to the caller in install.sh, and then the code here makes a decision about what to do: virtualmin-install/virtualmin-install.sh at 8a56f3704b3010863052ad510dbe08b04f1d75b7 · virtualmin/virtualmin-install · GitHub

It sounds like you just need to add almalinux or whatever get_distro returns for os_type to wherever it’s checking for rhel|centos as another option.

Okay, thanks. I just glanced at earlier today, and it seemed like $os_real, $os_version, $os_type and $os_major_version actually were assigned in slib.sh. But like I said, I just glanced at it. I need to look at it more carefully.

Richard

They are assigned in slib, but the decision about what to do with that information is in install.sh.

Ah, okay. Gotcha.

It looks to me like the relative repo paths are identical to CentOS. Hopefully this should be an easy thing.

Richard

Okay, got it installed:

With one error during post-install configuration:

sh: /etc/rc.d/init.d/mysqld: No such file or directory

Stuff of interest in the log:

warning: virtualmin-release-latest.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 60d62a6b: NOKEY
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Resource temporarily unavailable)
error: /etc/pki/rpm-gpg/RPM-GPG-KEY-webmin: key 1 import failed.
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Resource temporarily unavailable)
error: /etc/pki/rpm-gpg/RPM-GPG-KEY-virtualmin: key 1 import failed.
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Resource temporarily unavailable)
error: /etc/pki/rpm-gpg/RPM-GPG-KEY-virtualmin-6: key 1 import failed.

But

[2021/03/11 13:10:15] [INFO] - Configuring MySQL
[2021/03/11 13:10:15] [INFO] - Succeeded

And

[2021/03/11 13:10:19] [INFO] - Code: 256 Result: /sbin/grub2-mkconfig: line 274: /boot/efi/EFI/almalinux/grub.cfg.new: No such file or directory

But the system did reboot successfully.

Changes to install.sh:

Near 24:

supported="    CentOS/RHEL Linux 7, and 8 on x86_64
    AlmaLinux 8 on x86_64 (Experimental)
    Debian 9, and 10 on i386 and amd64
    Ubuntu 16.04 LTS, 18.04 LTS, and 20.04 LTS on i386 and amd64"

Near 329:

remove_virtualmin_release () {
  # shellcheck disable=SC2154
  case "$os_type" in
    "fedora" | "centos" | "rhel" | "amazon" | "almalinux" )

Near 607:

install_virtualmin_release () {
  # Grab virtualmin-release from the server
  log_debug "Configuring package manager for ${os_real} ${os_version}..."
  case "$os_type" in
    rhel|centos|fedora|amazon|almalinux)
    case "$os_type" in
      rhel|centos)
      if [ "$os_major_version" -lt 7 ]; then
        printf "${RED}${os_type} ${os_version} is not supported by this installer.${NORMAL}\\n"
        exit 1
      fi
      ;;
      almalinux)
      if [ "$os_version" -lt 8 ]; then
        printf "${RED}${os_type} ${os_version} is not supported by this installer.${NORMAL}\\n"
        exit 1
      fi
      ;;

Near 672: This kludge was to correct the URL to the VM repo. It might be fixable with a redirect server-side.

if [ "$os_type" = "almalinux" ]; then
    os_type="centos"
  fi

And that was that.

I’m going to work on the MySQL error when I have some more time. That one’s a bit puzzling at first glance.

Richard

Some more quirks…

Apache is running and working. Webmin knows it’s running in Bootup and Shutdown > Systemd. But neither Webmin nor Virtualmin show it running in the dashboards.

Same goes for MySQL. Once the startup and shutdown commands were changed, it started right up, and shows as running in Webmin. But it doesn’t show in the dashboards.

This installation of AlmaLinux was a migration from CentOS. Maybe I should fresh-install it from its own ISO and try this again.

Richard

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.