Qual é a maneira correta de resolver este conflito de rpm? (Erro: p11-kit-trust entra em conflito com nss-3.13.3-6.el6.x86_64)

3

Já faz um tempo que atualizei uma das minhas máquinas RHEL6 (exceto a atualização ocasional de pacotes específicos com vulnerabilidades conhecidas).

Como resultado disso, tenho um pacote ca-certificates antigo:

  • ca-certificates-2010.63-3.el6_1.5.noarch .

O novo pacote ca-certificates depende de

  • p11-kit-trust > = 0.18.4-2 ,

que por sua vez conflita com

  • nss < 3.14.3-33 ,

que está atualmente instalado (como nss-3.13.3-6.el6.x86_64 ). Como resultado, não consigo descobrir como atualizar corretamente ca-certificates .

Eu tenho p11-kit instalado, mas não p11-kit-trust , pois nss bloqueia. yum update nss diz " Nenhum pacote marcado para Atualização ".

yum erase nss recusa, pois implica também apagar yum .

A saída completa de yum update é assim:

Loaded plugins: product-id, rhnplugin, security, subscription-manager
This system is receiving updates from RHN Classic or RHN Satellite.
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package ca-certificates.noarch 0:2010.63-3.el6_1.5 will be updated
---> Package ca-certificates.noarch 0:2014.1.98-65.1.el6 will be an update
--> Processing Dependency: p11-kit-trust >= 0.18.4-2 for package: ca-certificates-2014.1.98-65.1.el6.noarch
--> Running transaction check
---> Package p11-kit-trust.x86_64 0:0.18.5-2.el6_5.2 will be installed
--> Processing Conflict: p11-kit-trust-0.18.5-2.el6_5.2.x86_64 conflicts nss  Finished Dependency Resolution
Error: p11-kit-trust conflicts with nss-3.13.3-6.el6.x86_64
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

package-cleanup --problems não encontra problemas e package-cleanup --cleandupes não encontra duplicados.

ca-certificates não pode ser desinstalado, pois openssl depende disso.

Existe uma maneira de resolver isso sem usar parâmetros de substituição como --dbonly , --force , --nodeps ou similar e sem baixar manualmente um RPM antigo da rede?

    
por MattBianco 12.11.2014 / 14:32

2 respostas

3

Baixe todos esses pacotes (peguei as versões do CentOS 6.6 do rpmfind.net)

nss-3.16.1-14.el6.x86_64.rpm
nss-util-3.16.1-3.el6.x86_64.rpm
nss-softokn-3.14.3-17.el6.x86_64.rpm
nss-softokn-freebl-3.14.3-17.el6.x86_64.rpm
nss-tools-3.16.1-14.el6.x86_64.rpm
nss-sysinit-3.16.1-14.el6.x86_64.rpm

e instale todos de uma só vez com rpm -Uvh nss-*.rpm .

Isso satisfaz as dependências de p11-kit-trust que o yum não conseguiu resolver sozinho.

Depois disso, yum update pode atualizar ca-certificates e instalar p11-kit-trust (para dependências).

    
por 13.11.2014 / 09:10
1

Tente:

  1. rpm -e ca-certificates
  2. rpm -ivh nss depois de ler o pacote na página de atualização de correção e aprimoramento do NSS . Copie o nome do pacote para sua arquitetura no Google e termine aqui na Lista de NSS no RPM Find
  3. Continue com o yum update

Isso deve reavaliar todas as dependências. Se todos eles passarem, reinstale o novo ca-certificates . Não fique tentado a baixar uma versão maior que a do comunicado de segurança, porque o yum update na etapa 3 deve substituir a versão baixada do RPM Find pela atual no repositório do RHEL.

UPDATE
A maioria das pessoas aqui esquece que o CentOS é um filho do RedHat Enterprise Linux, que é um Child of RedHat, agora Fedora. Isso faz do CentOS um neto do Fedora. Com isso em mente, eu quoute :

Yum is an automatic updater and package installer/remover for rpm systems. It automatically computes dependencies and figures out what things should occur to install packages. It makes it easier to maintain groups of machines without having to manually update each one using rpm. Yum has a plugin interface for adding simple features. Yum can also be used from other python programs via its module inte[r]face.

e o resumo deste livro on-line :

To summarize, a package management system uses the computer to keep track of all the various bits and pieces that comprise an application or an entire operating system. Most package management systems use a specially formatted file to keep everything together in a single, easily manageable entity, or package. Additionally, package management systems tend to provide one or more of the following functions:

  • Installing new packages.
  • Removing old packages.
  • Upgrading from an old package to a new one.
  • Obtaining information about installed packages.

Observe que não diz nada sobre resolução de dependência. Em outras palavras:

É possível remover o yum emitindo:

rpm -e yum

Por um curto período de tempo, tudo o que você perde é a resolução de dependência, depois apaga todos os outros pacotes openssl ou usa a opção --force do rpm. O único pacote que você NÃO DEVE REMOVER é o próprio rpm, se de fato o rpm depender do OpenSSL.

    
por 12.11.2014 / 17:38