rocky-tools/migrate2rocky
Peter Ajamian ac6fbedc21
Attempt to run dnf update before the migration (#58)
* Attempt to run dnf update before the migration.

While a migration will generally work without first running dnf update, thera
are several advantages of attempting to run an update first:

* We catch corner cases that an update will solve.

* Since we're running a distro-sync at the end, it effectively updates anyways
  and the same things that will break a distro-sync will often times break an
  update.  By attempting to run the update first we will discover those
  breakages before we put the system into an unstable state and we can bail out
  if the update fails, preventing a potentially disastrous outcome.
2021-06-29 21:21:33 +12:00
..
migrate2rocky.sh Attempt to run dnf update before the migration (#58) 2021-06-29 21:21:33 +12:00
README.md rocky-linux/rocky-tools#41 Add note to README about OpenJDK packages (#47) 2021-06-25 19:43:19 +12:00

migrate2rocky -- Conversion Script

Running this script will convert an existing CentOS 8 system to Rocky Linux 8.

Usage

./migrate2rocky.sh -h
├── -h   # --> Display this help
├── -r   # --> Convert to Rocky
└── -V   # --> Verify switch

[!! USE WITH CAUTION !!]

Known Issues

Custom replacements of default repositories

This script expects the original repository configuration being present, as well as enabled (i.e. for CentOS the baseos repo configuration in the /etc/yum.repos.d/CentOS-Linux-BaseOS.repo file has to be present and enabled). Also make sure that there are no other repositories which could interfere with the original configuration.

Any distribution that has had its core repositories altered, removed, duplicated or overridden may cause migrate2rocky to break or corrupt the system when run. Any attempt to migrate such systems, even after reversing the changes made by such software, is not supported in any way. In all cases you should backup your system before using migrate2rocky and USE AT YOUR OWN RISK.

This especially happens on systems configured with a centralized package management like Katello (RedHat Satellite 6) or Uyuni (RedHat Satellite 5, SUSE Manager).

RHEL migrations show error messages during conversion

  Installing       : rocky-release-8.3-13.el8.noarch                        2/5Error unpacking rpm package rocky-release-8.3-13.el8.noarch
...
error: unpacking of archive failed on file /usr/share/redhat-release: cpio: File from package already exists as a directory in system
error: rocky-release-8.3-13.el8.noarch: install failed
...
Error: Transaction failed

This results from conflicts in the directory structure of RHEL with that of RockyLinux. migrate2rocky will detect the issue and go on to remove the conflicting directory and install rocky-release with the rpm command.

Grub still shows kernel entries from previous installation

This is normal. The running kernel cannot be safely removed when migrate2rocky is run. The RockyLinux kernel should come up as the default highlighed kernel on reboot but the other ones will remain until they are removed or replaced by newer kernels. If you want you can manually remove the old kernels after reboot with dnf or rpm.

After migrating a system with an OpenJDK package installed you might encounter that java does not work any more. There is a bug in the OpenJDK packages that leads to losing the symbolic links in /etc/alternatives during the migration. A bug report against the upstream packages has been filed here. As a workaround you can use the following script to recreate the package default alternatives:

rpm -qa --scripts java-{1.8.0,11}-openjdk-{headless,devel} | sed -n '/postinstall/, /exit/{ /postinstall/! { /exit/ ! p} }' | sh

Latest Version

The latest version of this script can be found here.

Debugging

The migrate2rocky script pipes everything shown on stdout and stderr to /var/log/migrate2rocky.log.

If you run in to issues executing this script, please submit an issue here.

Make sure to include the output log, and remove any sensitive information. (if any)

Feel free to create a pull request if you think you've got the fix.