Não consigo atualizar meu sistema com `pacman`

Não consigo atualizar meu sistema com `pacman`

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 expatfaz parte do núcleo.

O que devo fazer neste momento?

Responder1

Pacotes no lib32repositó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 gremlinse galaxy-gremlins, que fornecem versões mais recentes de pacotes como expat. Mas você não tem lib32-gremlinsrepositó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-expatdependem 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-gremlinso 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.

informação relacionada