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 スクリプト ファイルを調べましたが、疑わしいものは見つかりませんでした。何を探せばいいのかわかりません。何が起こったのでしょうか?

編集: 解決策が見つかりました: $PATH で /usr/bin を /usr/local/bin の前に配置する必要があります。

答え1

ヤウルトはどうやら最初のエントリー$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...

次に、package-query を削除します。

[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

これで準備完了です。

関連情報