为什么 yaourt 找错了地方(pacman 可以工作)?

为什么 yaourt 找错了地方(pacman 可以工作)?

删除 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

你就可以出发了。

相关内容