Onehdy jsem se pokusil nainstalovat balíček z AUR pomocí Yay pomocný program. Balíček, který jsem se pokusil nainstalovat, má mnoho závislostí na Pythonu. Bohužel se mi to nepodařilo nainstalovat a Yay neustále házel následující chybu. Myslel jsem, že problém bude vyřešen, pokud odstraním konfliktní balíčky. Ale nechci porušit systém. Zde je výstupní chybová zpráva, když jsem se pokusil nainstalovat program z 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.
Jak můžete vidět ve výše uvedeném výstupu, následující tři balíčky byly ty, které způsobily problém.
- /usr/bin/tabulate
- /usr/lib/python3.6/site-packages/__pycache__/tabulate.cpython-36.pyc
- /usr/lib/python3.6/site-packages/tabulate.py
Řešení "CHYBA:'pacman' selhal při instalaci chybějících závislostí" v Arch Linuxu
Podle mě problém vyřešilo odstranění problematických balíčků. Vždy však doporučujeme zkontrolovat, zda problematické soubory nevlastní některé jiné balíčky . Protože pokud je ve vlastnictví nějakého jiného programu, je smazání špatný nápad. Musíte tedy zjistit, že tyto konfliktní soubory nevlastní žádné jiné balíčky. pacman příkaz může snadno zjistit, zda je soubor vlastněn jinými balíčky ve vašem systému Arch Linux.
V mém případě jsem zkontroloval, zda výše uvedené soubory vlastní nějaké jiné balíčky, jak je uvedeno níže.
$ sudo pacman -Qo /usr/bin/tabulate
Ukázkový výstup:
error: No package owns /usr/bin/tabulate
$ sudo pacman -Qo /usr/lib/python3.6/site-packages/__pycache__/tabulate.cpython-36.pyc
Ukázkový výstup:
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
Ukázkový výstup:
error: No package owns /usr/lib/python3.6/site-packages/tabulate.py
Jak můžete vidět, všechny výše uvedené příkazy mi ukázaly, že tyto soubory nejsou vlastněny žádnými balíčky. Takže jsem je jednoduše smazal jednoho po druhém.
$ 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
Hotovo! Nyní mohu nainstalovat všechny balíčky se závislostmi na Pythonu. Z bezpečnostních důvodů si tyto konfliktní soubory před odstraněním zálohujte. Můžete je obnovit pro případ, že by se po jejich odstranění vyskytly nějaké problémy.