Ao tentar atualizar meu sistema, recebo o erro: falha ao preparar a transação (não foi possível satisfazer as dependências).
Isto é o que eu recebo:
~> sudo pacman -Syu
:: Synchronising package databases...
gremlins is up to date
system is up to date
world is up to date
galaxy-gremlins is up to date
galaxy is up to date
lib32 is up to date
extra is up to date
community is up to date
multilib is up to date
:: Starting full system upgrade...
:: Replace libcanberra-pulse with gremlins/libcanberra? [Y/n] n
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing expat (2.4.1-1) breaks dependency 'expat=2.3.0' required by lib32-expat
:: installing libcap (2.50-1) breaks dependency 'libcap=2.49' required by lib32-libcap
:: installing libelf (0.185-1) breaks dependency 'libelf=0.184' required by lib32-libelf
:: installing libcanberra (0.30+2+gc0620e4-4) breaks dependency 'libcanberra=0.30+2+gc0620e4-3' required by libcanberra-pulse
Tento então remover o pacote expat
, mas recebo a mensagem: "Atenção: Existem pacotes proibidos na lista de remoção!"
Eu olhei para issopágina da Internet, mas aqui eles podem desinstalar o pacote problemático, enquanto eu não posso, pois expat
faz parte do núcleo.
O que devo fazer neste momento?
Responder1
Pacotes no lib32
repositório, que são versões de 32 bits de várias bibliotecas e similares, dependem de suas contrapartes de 64 bits da mesma versão.
Você tem repositórios de testes instáveis, como gremlins
e galaxy-gremlins
, que fornecem versões mais recentes de pacotes como expat
. Mas você não tem lib32-gremlins
repositório, então você não recebe as mesmas atualizações para as contrapartes de 32 bits desses pacotes, ou seja, você consegue permanecer nos antigos (estáveis). E, como os pacotes estáveis de 32 bits lib32-expat
dependem dos pacotes equivalentes de 64 bits dos repositórios estáveis, há um conflito, pois você pode manter seu sistema mais antigo (para satisfazer as antigas dependências do pacote de 32 bits) ou instale os pacotes mais recentes de 64 bits (o que quebrará as dependências do pacote de 32 bits, o que significa que você só pode fazer isso desinstalando-os).
Como alternativa, você pode ativar lib32-gremlins
o repositório, que fornece versões de pacotes de 32 bits nos repositórios de teste de 64 bits, ou desativar todos os repositórios de teste - qualquer uma dessas duas ações sincronizará seus repositórios de 64 e 32 bits e as dependências serão solucionáveis com os pacotes mais recentes disponíveis.