Linux terminology
leapp
speculation
verb | scope | notes 1 | notes 2 |
---|---|---|---|
update | moving from CentOS-7.8 to CentOS-7.9 | minor version number changes | |
upgrade | moving from CentOS-7.8 to CentOS-7.9 | same as "update --obsoletes" | minor version number changes |
migrate |
moving from CentOS-7.x to CentOS-8.x (or anything else) | major version number changes |
Caveats:
lateral transfer |
from | to | tested? |
https://wiki.almalinux.org/documentation/migration-guide.html almalinux-deploy.sh |
CentOS-8 Rocky Linux-9 |
AlmaLinux-8 AlmaLinux-9 |
yes (note-1) yes (note-1) |
https://github.com/rocky-linux/rocky-tools/tree/main/migrate2rocky | CentOS-8 CentOS-9 |
Rocky Linux-8 Rocky Linux-9 |
no no |
https://linux.oracle.com/switch/centos/ ( https://linux.oracle.com/switch/ ) centos2ol.sh |
CentOS-6 CentOS-7 CentOS-8 Rocky Linux-8 Rocky Linux-9 |
Oracle Linux-6 Oracle Linux-7 Oracle Linux-8 Oracle Linux-8 Oracle Linux-9 |
no no no no no |
# uninstall leapp
yum erase \*leapp\*
# -----------------------------------------
# OPTIONAL: very dangerous commands so type carefully
rm -fr /var/lib/leapp/*
rm -fr /var/log/leapp/*
cd /var/log/leapp
mkdir save0
mkdir save1
mkdir save2
mkdir save3
ll leap* # any files here?
mv leap* save0/ # then move them to one of the archives
sudo yum update -y sudo reboot
sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el$(rpm --eval %rhel).noarch.rpm
sudo yum install -y leapp-upgrade leapp-data-almalinux
# we we will do everything from root (so do not use sudo)tweak-2a ( you should skip this step )
# become root like so:
su -
# changes to root's shell # ------------------------tweak-2b ( recommended )
# changes for leapp
export LEAPP_PROXY_HOST=http://proxy.domain.com:8083/
# changes for curl export http_proxy=http://proxy.domain.com:8083/ export https_proxy=http://proxy.domain.com:8083/
# changes to your terminal emulator # ---------------------------------tweak-3
# set width to 132 # enable autowrap # set an ssh keepalive of 60 seconds
# add proxy information to the ELevate repo
vim /etc/leapp/files/leapp_upgrade_repositories.repo
leapp preupgrade
leapp upgrade # caveat: do not do this unless to intend to upgrade right now
# you might wish to run my helper script (below) before starting this
My Trial Conversions (EL7 to EL8 to EL9) | ||||||||
---|---|---|---|---|---|---|---|---|
EL7 to EL8 | EL8 to EL9 | |||||||
Date | From | To | Method | score | Then To | Method | score | notes |
2023-08-31 | CentOS-7.9 | Rocky Linux-8.8 | ELevate | pass | Rocky Linux 9.2 | Elevate | fails | 1 |
2023-09-07 | CentOS-7.9 | AlmaLinux-8.8 | ELevate | pass | AlmaLinux 9.2 | Elevate | dirty pass | 2 |
2023-09-14 | CentOS-7.9 | Oracle Linux-8.8 | ELevate | pass | Oracle Linux 9.2 | Oracle Leapp | pass | 3 |
file /usr/share/redhat-logos from install of rocky-logos-90.14-1.el9.x86_64
conflicts with file from package rocky-logos-86.3-1.el8.x86_64
# note: you cannot yum erase rocky-logos-86.3-1.el8.x86_64 without causing damage
This hack was quickly written during a moment of frustration and panic
Only use this if you see failures associated with curl errors.
# ================================================================ # title : watch_elx_file_dnf-dot-conf.sh # author : Neil Rieck # created: 2023-08-28 # notes : # 1) to be used during the leapp upgrade: # el="78" for CentOS-7 to AlmaLinux-8 # el="89: for AlmaLinux-8 to AlmaLinux-9 # 2) run this on a second session while you upgrade from the first
# start this program before you type "leapp preupgrade" then
# let is run until after "leapp upgrade" # ================================================================ el="78" # choices: "78" or "89" LINE1="sslverify=0" LINE2="proxy=http://your-proxy-server.com:8083/" # ================================================================ if [[ ${el} == "89" ]] then echo "for use with leapp 8-to-9" fs="/var/lib/leapp/el9userspace/etc/dnf/dnf.conf" else echo "for use with leapp 7-to-8" fs="/var/lib/leapp/el8userspace/etc/dnf/dnf.conf" fi echo "-i-config line1: "$LINE1 echo "-i-config lines: "$LINE2 echo $LINE1 >> ${fs} echo $LINE2 >> ${fs} n=1 c=0 prevModificationSeconds=$(date -r ${fs} +%s); # snapshot 1 for (( ; ; )); do echo "test: "${n}" changes: "${c} ((n=n+1)); watchModificationSeconds=$(date -r ${fs} +%s); # test if [[ ${prevModificationSeconds} != ${watchModificationSeconds} ]] then echo "-i-oops, the file changed" echo $LINE1 >> ${fs} echo $LINE2 >> ${fs} prevModificationSeconds=$(date -r ${fs} +%s); # snapshot 2 echo "-i-update complete" ((c=c+1)); fi sleep 1 done echo "-i-exited" #
I mentioned previously, I performed approximately 30 trial conversions before I did a real-word conversion. I have now done seven real world conversions (six large systems employing 24 CPUs, 128 GB of RAM and 1TB of direct-connect storage) so here are a few caveats.
systemctl status
or
systemctl status >> snapshot1.txt
systemctl status
or
systemctl status >> snapshot2.txt
vim -d snapshot1.txt snapshot2.txt # inspect the differences
It should be no surprise that a some post-tweaking was necessary
cd /etc/httpd/conf.d/This was all I needed to get things going. I also had to remove some parameters from the config file like MinSpareServers and MaxSpareServers which are no longer supported by Apache. Those are found in file /etc/httpd/conf/httpd.conf
mv 00-base.conf 00-base.conf-old
mv 00-base.conf.rpmnew 00-base.conf
mv 00-proxy.conf 00-proxy.conf-old
mv 00-proxy.conf.rpmnew 00-proxy.conf
systemctl start httpd
vim -d main.cf main.cf.rpmnewI noticed that one line contains a command to force postfix-v3 to work like postfix-v2.
compatibility_level = 2I added this line to main.cf then did this to get things going.
systemctl start postfix
to be safe, consider doing a full database dump before you begin
================================================================
sudo yum erase old-product-name
sudo clean all
sudo makecache
sudo yum list maria\*
sudo yum install mariadb-client
sudo yum install mariadb-server
sudo systemctl start mariadb-server
/usr/bin/mysql_upgrade -uroot -p
sudo yum erase mariadb-server
sudo yum install mariadb-client
sudo yum install mariadb-server
sudo systemctl start mariadb-server
/usr/bin/mysql_upgrade -uroot -p
# note: hints for mysql_upgrade are seen in /var/log/messages
tail -100 /var/log/messagesI was seeing complaints about a problem with abrt. This required that I rename some files:
cd /etc/abrt
mv abrt.conf abrt.conf-old
mv abrt.confrpmnew abrt.conf
rpm -qa | grep -i leapp
rpm -qa | grep -i elevate
rpm -qa | grep -i python2
-----------------------------
then use "rpm -e" on everything just displayed