Resolva “ERRO: ‘pacman’ falhou ao instalar dependências ausentes” no Arch
Outro dia tentei instalar um pacote do AUR usando o programa auxiliar Yay. O pacote que tentei instalar tem muitas dependências do Python. Infelizmente, não consegui instalá-lo e Yay continuou gerando o seguinte erro. Achei que o problema seria resolvido se eu removesse os pacotes conflitantes. Mas não quero quebrar o sistema. Aqui está a mensagem de erro de saída quando tentei instalar um programa do AUR:
error: failed to commit transaction (conflicting files)
python-tabulate: /usr/bin/tabulate exists in filesystem
python-tabulate: /usr/lib/python3.6/site-packages/__pycache__/tabulate.cpython-36.pyc exists in filesystem
python-tabulate: /usr/lib/python3.6/site-packages/tabulate.py exists in filesystem
Errors occurred, no packages were upgraded.
:: Building torrench package(s)...
==> Making package: torrench 1.0.56-1 (Mon Oct 23 15:46:37 IST 2017)
==> Checking runtime dependencies...
==> Installing missing dependencies...
error: target not found: python-tabulate
==> ERROR: 'pacman' failed to install missing dependencies.
Como você pode ver na saída acima, os três pacotes a seguir foram os que causaram o problema.
- /usr/bin/tabular
- /usr/lib/python3.6/site-packages/__pycache__/tabulate.cpython-36.pyc
- /usr/lib/python3.6/site-packages/tabulate.py
Resolva “ERRO: ‘pacman’ falhou ao instalar dependências ausentes” no Arch Linux
Para mim, excluir os pacotes problemáticos resolveu o problema. No entanto, é sempre recomendável verificar se os arquivos problemáticos não pertencem a outros pacotes. Porque se pertencer a algum outro programa, excluí-los é uma má ideia. Portanto, você precisa descobrir que esses arquivos conflitantes não pertencem a nenhum outro pacote. O comando pacman pode descobrir facilmente se um arquivo pertence a outros pacotes em seu sistema Arch Linux.
No meu caso, verifiquei se os arquivos mencionados acima pertencem a outros pacotes, conforme mostrado abaixo.
sudo pacman -Qo /usr/bin/tabulate
Exemplo de saída:
error: No package owns /usr/bin/tabulate
sudo pacman -Qo /usr/lib/python3.6/site-packages/__pycache__/tabulate.cpython-36.pyc
Exemplo de saída:
error: No package owns /usr/lib/python3.6/site-packages/__pycache__/tabulate.cpython-36.pyc
sudo pacman -Qo /usr/lib/python3.6/site-packages/tabulate.py
Exemplo de saída:
error: No package owns /usr/lib/python3.6/site-packages/tabulate.py
Como você pode ver, todos os comandos acima me mostraram que esses arquivos não pertencem a nenhum pacote. Então, eu simplesmente os excluí um por um.
sudo rm /usr/bin/tabulate
sudo rm /usr/lib/python3.6/site-packages/__pycache__/tabulate.cpython-36.pyc
sudo rm /usr/lib/python3.6/site-packages/tabulate.py
Feito! Agora posso instalar todos os pacotes com dependências do Python. Por precaução de segurança, faça backup dos arquivos conflitantes antes de excluí-los. Você pode restaurá-los caso haja algum problema após excluí-los.