yum erro de dependência de atualização (já instalado)

2

Estou enfrentando o seguinte erro:

Transaction Check Error:
package apr-1.3.12-1.jason.1.x86_64 (which is newer than apr-1.2.7-11.el5_6.5.cloudlinux.2.i386) is already installed

Isso está no cloudlinux. apr-1.3.12-1.jason.1.x86_64 é instalado a partir de um repositório de terceiros e agora qualquer atualização de pacote parece exigir uma versão mais antiga do apr ou nem percebe que uma versão mais recente está instalada.

Qual é a maneira mais inteligente de resolver esta solução? Infelizmente eu não sei exatamente qual pacote precisa dessa dependência (qual é a maneira de descobrir isso?)

    
por Lokari 28.10.2011 / 07:47

2 respostas

1

Se você quiser continuar usando o repositório de terceiros e precisar usar uma versão anterior, poderá fazer um yum downgrade apr .

No entanto, você pode remover o apr ( yum erase apr ) e reinstalar os pacotes de repositório padrão para os removidos.

[edit 1]:

Parece que você tem uma incompatibilidade de versão entre a sua versão de 32 bits e a versão de 64 bits do apr, você pode tentar executar yum update apr.i386 apr.x86_64 . Você precisará fazer isso com o repo de terceiros ativado.

    
por 07.11.2011 / 19:12
1

As sugestões do @Case de yum erase apr e yum downgrade apr são boas, mas se você quiser fazer um pouco mais de investigação e ver qual é o aplicativo ofensivo, faça o seguinte:

Você pode verificar quais pacotes instalados requerem o pacote de bloqueio "apr-1.3.12-1.jason.1.x86_64" da forma como;

# rpm -q --whatrequires apr
**apr-devel-1.2.7-11.el5_6.5**  <--(this or something else in the list)
...

apr é o "tempo de execução portátil do apache" e foi presumivelmente instalado como uma biblioteca por alguma outra transação do pacote de software relacionado ao httpd.

E então você pode ver as dependências desse pacote ofensivo usando o seguinte comando;

# rpm -v -q --requires apr-devel
/sbin/ldconfig  
libapr-1.so.0()(64bit)  
libc.so.6()(64bit)  
....

Para ver quais dependências são requeridas pelo novo pacote que você está tentando instalar do repositório, você pode usar;

# yum deplist apr
Finding dependencies: 
package: apr.i386 1.2.7-11.el5_6.5
  dependency: libc.so.6(GLIBC_2.1.3)
   provider: glibc.i686 2.5-65
   provider: glibc.i686 2.5-65.el5_7.
...

Em termos mais gerais, o problema é que os pacotes antigo e novo entram em conflito e você terá que resolver o problema decidindo qual conjunto de pacotes você vai manter e quais remover.

Eu pessoalmente preferiria manter o uso da versão distro do pacote apr, pois é usado por um monte de softwares baseados no apache.

Para ver uma saída detalhada e maluca do yum tentando encontrar as dependências para você, adicione o sinalizador -v;

# yum -v deplist apr
...
pkgsack time: 3.261
rpmdb time: 0.000
Finding dependencies: 
Searching pkgSack for dep: /sbin/ldconfig
Potential match for /sbin/ldconfig from glibc-2.5-65.i686
Potential match for /sbin/ldconfig from glibc-2.5-65.x86_64
...
    
por 06.02.2012 / 05:30