CentOS (/RHEL clone) 8 TemplateVM

Disclaimer: this is a bit of a hack, you should maybe not use the template for VMs with an unrestricted internet connection. But enables you to run legacy software like EDA tools, AlmaLinux is on LTS security only till 2029

How to updated the in qubes 4.2 (community-templates) provided centos-stream-8 template to almalinux 8.10:
adapted from the steps above.

first remove/disable some repos, to avoid upgrade conflicts:

sudo mv /etc/yum.repos.d/CentOS-Stream-Extras-common.repo /etc/yum.repos.d/CentOS-Stream-Extras-common.repo.disabled
sudo mv /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:fepitre:epel-8-qubes.repo /etc/yum.repos.d/_copr:copr.fedorainfracloud.org:fepitre:epel-8-qubes.repo.disabled

then point the repos to the archived centos repos

# Fix BaseOS repository
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$stream&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$stream\// s/^#*/#/' -e '/^\[baseos\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/BaseOS/$basearch/os' /etc/yum.repos.d/CentOS-Stream-BaseOS.repo

# Fix AppStream repository
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$stream&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$stream\// s/^#*/#/' -e '/^\[appstream\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/AppStream/$basearch/os' /etc/yum.repos.d/CentOS-Stream-AppStream.repo

# Fix ContinuousRelease repository
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$stream&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$stream\// s/^#*/#/' -e '/^\[cr\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/ContinuousRelease/$basearch/os' /etc/yum.repos.d/CentOS-Stream-ContinuousRelease.repo

# Fix Extras repository
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$stream&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$stream\// s/^#*/#/' -e '/^\[extras\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/extras/$basearch/os' /etc/yum.repos.d/CentOS-Stream-Extras.repo

# Fix HighAvailability repository
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$stream&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$stream\// s/^#*/#/' -e '/^\[ha\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/HighAvailability/$basearch/os' /etc/yum.repos.d/CentOS-Stream-HighAvailability.repo

# Fix PowerTools repository
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$stream&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$stream\// s/^#*/#/' -e '/^\[powertools\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/PowerTools/$basearch/os' /etc/yum.repos.d/CentOS-Stream-PowerTools.repo

then update

sudo dnf update -y --allowerasing --nobest

next you need to build some shim packages yourself for this
install

sudo dnf install -y rpm-build redhat-rpm-config make gcc --skip-broken

then use the 3 shell scripts to build dummy or name shims:
shim_packages.tar.gz (1.3 KB)
(download them in a disposible wm, extract, read them, then transfer them to the centos-stream template)

read the scripts first (common sense),
build-shadow-compat creates a package that provides “shadow” and depends on shadow-utils
build-pulseaudio-compat creates a package that provides “pulseaudio-daemon” amd depends on pulseaudio
build-fwupdqubes-dummy creates a empty package that provides “fwupd-qubes-vm” because the original has dependencies requiring EL9

after you run them with bash <build-script.sh>

install them with

sudo dnf install \
/home/user/rpmbuild/RPMS/noarch/fwupd-qubes-vm-dummy-3-1.el8.noarch.rpm \
/home/user/rpmbuild/RPMS/noarch/pulseaudio-compat-2-2.el8.noarch.rpm \
/home/user/rpmbuild/RPMS/noarch/shadow-compat-1-1.el8.noarch.rpm

now download the almalinux-deploy.sh from GitHub - AlmaLinux/almalinux-deploy: EL to AlmaLinux migration tool. · GitHub in a disposible VM and transfer it to your template

give the template internet access to download the new repokeys

run the update and conversion with

sudo bash almalinux-deploy.sh --downgrade

disable internet access to your template

run

sudo dnf update

to notify qubes updater the tmplate is uptodate

and voila you are on almalinux-8.10 with “OS security updates” till 2029

1 Like