Yum diz que um pacote está instalado e não está instalado e está bloqueando a instalação de outros pacotes

6

Estou tentando instalar um novo pacote ( glibc-static ) e recebo o seguinte erro

---> Package nss-softokn-freebl.i686 0:3.14.3-18.el6_6 will be installed
--> Finished Dependency Resolution
Error: Package: glibc-2.12-1.149.el6.i686 (CentOS-OS)
          Requires: glibc-common = 2.12-1.149.el6
          Installed: glibc-common-2.12-1.149.el6_6.5.x86_64 (@updates)
              glibc-common = 2.12-1.149.el6_6.5
          Available: glibc-common-2.12-1.149.el6.x86_64 (CentOS-OS)
              glibc-common = 2.12-1.149.el6
Error: Package: glibc-devel-2.12-1.149.el6.i686 (CentOS-OS)
          Requires: glibc-headers = 2.12-1.149.el6
          Installed: glibc-headers-2.12-1.149.el6_6.5.x86_64 (@updates)
              glibc-headers = 2.12-1.149.el6_6.5
          Available: glibc-headers-2.12-1.149.el6.x86_64 (CentOS-OS)
              glibc-headers = 2.12-1.149.el6
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

Observe que glibc-common-2.12-1.149.el6_6.5.x86_64 e glibc-common-2.12-1.149.el6.x86_64 não correspondem. Mas glibc-common-2.12-1.149.el6_6.5.x86_64 está listado como disponível. Eu pensaria que yum instalaria alegremente isto. Unforunately, yum não o instalou.

Então eu tentei fazer isso sozinho.

~ $> sudo yum install glibc-common-2.12-1.149.el6
Loaded plugins: fastestmirror, presto
Setting up Install Process
Loading mirror speeds from cached hostfile
 * epel: mirror.us.leaseweb.net
Package matching glibc-common-2.12-1.149.el6.x86_64 already installed. Checking for update.
Nothing to do

Isso não funcionou. Acha que já está instalado.

Então tentei reinstalá-lo.

~ $> sudo yum reinstall glibc-common-2.12-1.149.el6
Loaded plugins: fastestmirror, presto
Setting up Reinstall Process
Loading mirror speeds from cached hostfile
No Match for argument: glibc-common-2.12-1.149.el6
Package(s) glibc-common-2.12-1.149.el6 available, but not installed.
Nothing to do

Como posso resolver isso?

    
por Alan C. 10.03.2015 / 18:12

3 respostas

6

Brincar com o banco de dados RPM não gerou nenhum resultado particularmente bom.

Acabei percebendo que alguns dos pacotes glibc eram i686 e outros x86_64 . Por exemplo:

Package: glibc-2.12-1.149.el6.i686 (CentOS-OS)
    Requires: glibc-common = 2.12-1.149.el6
    Installed: glibc-common-2.12-1.149.el6_6.5.x86_64

Eu não gostei disso, e espero que o Yum também não goste disso.

Rodando

yum downgrade glibc glibc-headers glibc-common glibc-devel

trouxe todos os pacotes para a mesma arquitetura ( x86_64 ). Então,

yum install glibc-static

funcionou como um encanto.

    
por 10.03.2015 / 20:24
5

O banco de dados do RPM está confuso. Minha recomendação, tendo encontrado isso antes, é para rpm -e --justdb o mais novo pacote "duplicado" instalado, então yum upgrade o pacote, então rpm --rebuilddb apenas porque sou um pouco paranóico. Depois de passar pelas duas primeiras etapas, você poderá instalar os pacotes mais novos, supondo que o repo esteja sincronizado corretamente. Você pode querer yum clean all logo após o rpm -e --justdb para ter certeza disso - e certifique-se de especificar --justdb ou você pode fazer todo tipo de coisas ruins no seu sistema.

    
por 10.03.2015 / 18:27
0

Consegui resolver um problema semelhante fazendo o download do rpms manualmente para o sistema (observe que você precisa ter todos os rpm dependentes) salvando-os em uma pasta e executando:

yum localupdate /folderlocation/*.rpm

Meu problema girava em torno do yum, encontrando inconsistências ao obter os RPMs dos repositórios para os quais eu estava apontando. Os sintomas embora apresentados exatamente como o que você está vendo, então isso também pode funcionar para você.

    
por 10.03.2015 / 18:53