删除 yaourt 和 package-query、将 pacman 升级到 v4.0.1 并从 AUR 重新安装最新的 package-query 和 yaourt 后,我无法再使用 yaourt。它告诉我:
Unable to open file: /usr/local/etc/pacman.conf
我不明白为什么它现在在那里查找而不是在 /etc 中。与此同时,pacman 正常工作。如果我创建指向 pacman.conf 的符号链接,则会收到以下错误:
failed to initialize alpm library (could not find or read directory)
我的 $PATH 是:
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/vendor_perl:/usr/bin/core_perl
我尝试在安装之前查看 yaourt PKGBUILD,然后重新安装,查看 yaourt 脚本文件,但找不到任何可疑的东西。不知道该查找什么,可能发生了什么?
编辑:找到了解决方案:/usr/bin 需要位于 $PATH 中的 /usr/local/bin 之前。
答案1
Yaourt 显然使用第一次进入在 $PATH 中,所以/usr/bin
需要在/usr/local/bin
那里之前。
改变这一点就/etc/profile
解决了问题。
答案2
使用空的重新安装包查询--prefix
:./configure --prefix=
答案3
我也遇到了同样的问题。问题(如其他答案中所述)是,如果您运行:
[linux]$ echo $PATH
[linux]$ /usr/local/sbin:/usr/local/bin:/usr/bin .....
请注意,/usr/local/sbin 和 /usr/local/bin 首先出现,因此搜索的程序将从这些位置获取(如果存在)。
查看 /usr/local/bin 以查看是否可以在那里看到 package-query;如果可以,则您的问题就是由此引起的,它不应该在那里(除非您在那里安装它)。所以。让我们修复它......
首先删除 YAOURT:
sudo pacman -R yaourt
checking dependencies...
Packages (1) yaourt-1.9-1
Total Removed Size: 0.81 MiB
:: Do you want to remove these packages? [Y/n] y
:: Processing package changes...
(1/1) removing yaourt [############################################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
然后删除包查询:
[linux]$ sudo pacman -R package-query
checking dependencies...
Packages (1) package-query-1.9-3
Total Removed Size: 0.08 MiB
:: Do you want to remove these packages? [Y/n] y
:: Processing package changes...
(1/1) removing package-query [############################################################################] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
最后,手动删除杂散的 package-query 二进制文件:
[linux]$ sudo rm -rf /usr/local/bin/package-query
现在,使用此处提供的说明重新安装 yaourt(和 package-query):https://archlinux.fr/yaourt-en
你就可以出发了。