Erro YUM Transaction Check - Conflito de pacotes Repo's diferentes

quarta-feira, 18 de outubro de 2017

Erro YUM Transaction Check - Conflito de pacotes Repo's diferentes


Bom Dia Jovens Mancebos !


Estava eu esses dias em meu trabalho, quando me deparei com aquela lendária situação chatíssima que acontece nas melhores famílias brasileiras da atualidade. Eu tive preguiça de queimar aquela imagenzinha marota em uma mídia física para bootar um servidor legado.

Acontece que o projeto era para adicionar um segundo compute node no openstack/packstack, logo, utilizamos por default a distro CentOS 7.x, e a única mídia física que eu tinha em mãos era a mídia do Red Hat 7.3 Minimal.
"Pô, mas é quase a mesma coisa não é ?!"
"É só instalar o Red Hat 7.3 e trocar o repositório para os repo do CentOS !"


 É galera, eu pensava assim, até que enfrentei conflitos monstruosos de pacotes já instalados no Red Hat Linux e de pacotes dos repositórios do CentOS.
À primeira vista, os pacotes são os mesmos, as versões aparentemente são as mesmas, mas o YUM/S.O. acusa que os pacotes conflitam !
E não é possível instalar corretamente os pacotes e dependências necessárias, acusando o seguinte erro no YUM:

Running transaction check
Running transaction test


Transaction check error:
  file /usr/share/man/man5/limits.conf.5.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man5/pam_env.conf.5.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/faillock.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_env.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_exec.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_faillock.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_unix.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pam_userdb.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64
  file /usr/share/man/man8/pwhistory_helper.8.gz from install of pam-1.1.8-18.el7.i686 conflicts with file from package pam-1.1.8-18.el7.x86_64

Error Summary


Como vamos corrigir este "conflito" imaginário entre os pacotes instalados e os repos ?
Eu encontrei a solução, claro, pesquisando no maior dicionário do universo, GOOGLE. xD
MAAAAASSSSSS, sabe aquelas pesquisas cachorras, que só trazem 3 resultados e dois deles estão em russo e um último está em mandarim ?! Pois é, foi essa consulta cachorra que me ocorreu. Felizmente, eu não sei ler mandarim, mas foi onde encontrei a minha salvação !

Bem, vamos tomar como exemplo o conflito citado acima, com o PAM.

Primeiramente precisamos instalar um módulo do YUM que nos proporciona a habilidade de apenas fazer um download do pacote, sem instalá-lo efetivamente:

yum install -y yum-downloadonly

Então, vamos realizar apenas o download do pacote que está no repositório, para podermos substituir o pacote já instalado no s.o. Vamos baixá-lo em /tmp ok?

yum install pam.i686 -y --downloadonly --downloaddir=/tmp

Como podem ver na mensagem original, o pacote exigido e que está no repositório é o PAM.i686, enquanto o pacote instalado que está conflitando é o PAM.x86_64.
Para ignorar esta dependência e forçar a instalação do pacote exigido pelo repositório é necessário adicionar a tag --force e --nodeps para instalar somente aquele pacote forçando-o à ser instalado e sobrescrever "corretamente" o pacote conflitante. Logo em seguida, precisamos executar um reinstall para que as dependências sejam saciadas corretamente e em suas versões corretas.

cd /tmp
rpm -ivh --force --nodeps pam-1.1.8-18.el7.i686.rpm
yum reinstall pam.i686

E pronto ! Estamos com o conflito necessário para executar a instalação original saciado.
Tive este problema ao instalar o pacote openstack-nova-compute do repositório CentOS 7.x em um Red Hat Linux 7.3, porém, acredito que estes procedimentos podem saciar outras necessidades, como destaca o site que encontrei a solução entre Oracle Linux e CentOS:

https://www.mf8.biz/centos-to-oracle-enterprise-linux/


Pessoal, agradeço a leitura, espero poder ter ajudado !

0 comentários :

Postar um comentário