解决Arch Linux中的“错误:'pacman'无法安装缺少的依赖项”
时间:2020-03-21 11:47:16 来源:igfitidea点击:
前几天,我尝试使用Yay帮助程序从AUR安装软件包。
我尝试安装的软件包具有许多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 2016) ==> Checking runtime dependencies... ==> Installing missing dependencies... error: target not found: python-tabulate ==> ERROR: 'pacman' failed to install missing dependencies.
如我们在上面的输出中看到的,以下三个软件包是导致问题的软件包。
- /usr/bin/tabulate
- /usr/lib/python3.6/site-packages/pycache/tabulate.cpython-36.pyc
- /usr/lib/python3.6/site-packages/tabulate.py
解决Arch Linux中的“错误:'pacman'无法安装缺少的依赖项”
对我来说,删除有问题的软件包可以解决此问题。
但是,始终建议检查有问题的文件不属于其他某些软件包。
因为如果它归某个其他程序所有,则删除它们不是一个好主意。
因此,我们需要查找那些冲突文件不属于任何其他软件包的文件。
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依赖项的软件包。
为了安全起见,在删除有冲突的文件之前,请先备份它们。
我们可以将其还原,以防万一删除后出现任何问题。