oracle / centos2ol

Script and documentation to switch CentOS/Rocky Linux to Oracle Linux
https://linux.oracle.com/switch/centos/
Universal Permissive License v1.0
345 stars 83 forks source link

Conflict when installing oracle package #89

Closed traks29 closed 3 years ago

traks29 commented 3 years ago

Hello,

I've got a problem when I run the script. When installing packages I have one fail due to a conflict beetwen oracle and centos packages. I don't know if the script continue to run after a fail but the system cannot boot after that. Maybe some configuration are not finished at this point.

I think I should first resolve the install error. Here is the message, sorry a part is in french:

La vérification de la transaction a réussi.
Lancement de la transaction de test
Les paquets téléchargés ont été mis en cache jusqu’à la prochaine transaction réussie.
Vous pouvez supprimer les paquets en cache en exécutant « yum clean packages ».
Erreur : Erreur de la transaction de test :
  le fichier /usr/share/pixmaps/poweredby.png de l'installation de oracle-logos-httpd-84.3-1.0.1.el8.noarch entre en conflit avec le fichier du paquet centos-logos-httpd-80.5-2.el8.noarch

Could not automatically sync with Oracle Linux repositories.
Check the output of 'yum distro-sync' to manually resolve the issue.
For assistance, please open an issue via GitHub: https://github.com/oracle/centos2ol/.

Do you have any idea how I could solve this? If I do 'yum distro-sync', the same error appears.

Thanks.

Djelibeybi commented 3 years ago

Can you please use the latest version of the script? It now has special handling for the centos-logos packages.

traks29 commented 3 years ago

I retryied using the latest version of the script, but unfortunately I still have the same error.

Djelibeybi commented 3 years ago

Could you please run with the -V option and attach the RPM list so we can review it?

traks29 commented 3 years ago

You'll find attached the the two files created. Thank you for your help. rpms-list-before.log rpms-verified-before.log

Djelibeybi commented 3 years ago

Ok, this is a very odd configuration. Somehow, you've ended up with aarch64 RPMs installed on what I assume is an x86_64 server. Where is this instance running?

Note that the current script doesn't fully support migrating an aarch64 (Arm-based) instance. I have code waiting to be merged via #90 that will enable migrating Arm instances.

traks29 commented 3 years ago

Indeed, this is really weird. I don't understand. The server is a vm host on a ESXi (intel core i based). I've made some research and it appears that when I list all the rpm packages installed, I have also .noarch packages in addition to the x86_64 packages. I don't know why they are listed as aarch64 in the script.

Djelibeybi commented 3 years ago

Now that you've said that, I realised what's happening: CentOS is building noarch packages on their Arm builders (because they can). I need to adjust the script to store the actual architecture of each package.

Can you please try moving lines 491-494 to after the esac on line 533? I suspect we need to swap the RPMs before the distro-sync

Djelibeybi commented 3 years ago

I've just tested this locally by setting up a new CentOS 8 VM, installing the httpd module and then running the the current version of centos2ol.sh and it worked just fine. Something else to try is to ensure your CentOS 8 box is up-to-date by running dnf update before starting the conversion.

traks29 commented 3 years ago

I've done what you said (moving lines and update) and it works! Thank you so much for your help.

traks29 commented 3 years ago

I tested without modifying the script, it also works.