Решить «ОШИБКА: «pacman» не удалось установить отсутствующие зависимости» в Arch
На днях я попытался установить пакет из AUR с помощью вспомогательной программы Yay. Пакет, который я пытался установить, имеет множество зависимостей Python. К сожалению, мне не удалось его установить, и Yay продолжал выдавать следующую ошибку. Я думал, что проблема будет решена, если я удалю конфликтующие пакеты. Но я не хочу ломать систему. Вот сообщение об ошибке, когда я пытался установить программу из 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.
Как вы можете видеть в приведенном выше выводе, следующие три пакета вызвали проблему.
- /usr/bin/таблица
- /usr/lib/python3.6/site-packages/__pycache__/tabulate.cpython-36.pyc
- /usr/lib/python3.6/site-packages/tabulate.py
Решите «ОШИБКА: «pacman» не удалось установить отсутствующие зависимости» в Arch Linux.
На мой взгляд, удаление проблемных пакетов решило проблему. Однако всегда рекомендуется проверять, не принадлежат ли проблемные файлы другим пакетам. Т.к. если они принадлежат какой-то другой программе, удалять их — плохая идея. Итак, вам нужно убедиться, что эти конфликтующие файлы не принадлежат каким-либо другим пакетам. Команда pacman может легко узнать, принадлежит ли файл другим пакетам в вашей системе Arch Linux.
В моем случае я проверил, принадлежат ли вышеупомянутые файлы каким-либо другим пакетам, как показано ниже.
sudo pacman -Qo /usr/bin/tabulate
Пример вывода:
error: No package owns /usr/bin/tabulate
sudo pacman -Qo /usr/lib/python3.6/site-packages/__pycache__/tabulate.cpython-36.pyc
Пример вывода:
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
Пример вывода:
error: No package owns /usr/lib/python3.6/site-packages/tabulate.py
Как видите, все приведенные выше команды показали мне, что эти файлы не принадлежат никаким пакетам. Итак, я просто удалил их один за другим.
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
Сделанный! Теперь я могу установить все пакеты с зависимостями Python. В целях безопасности создайте резервные копии конфликтующих файлов перед их удалением. Вы можете восстановить их на тот случай, если после удаления возникнут проблемы.