Warum sucht yaourt am falschen Ort (Pacman funktioniert)?

8

Nachdem ich yaourt und package-query entfernt, pacman auf v4.0.1 aktualisiert und die neueste package-query und yaourt von AUR neu installiert habe, kann ich yaourt nicht mehr verwenden. Es sagt mir:

Unable to open file: /usr/local/etc/pacman.conf

Ich verstehe nicht, warum es jetzt dort aussieht und nicht in / etc. Währenddessen arbeitet Pacman normal. Wenn ich einen Symlink zu pacman.conf erstelle, wird stattdessen der folgende Fehler angezeigt:

failed to initialize alpm library (could not find or read directory)

Mein $ PATH ist:

/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/vendor_perl:/usr/bin/core_perl

Ich habe versucht, in der yaourt PKGBUILD vor der Installation nachzuschauen, sie neu zu installieren, in der yaourt-Skriptdatei zu suchen, und ich kann nichts Verdächtiges finden. Sie sind sich nicht sicher, wonach Sie suchen sollen, was hätte passieren können?

BEARBEITEN: Die Lösung gefunden: / usr / bin muss vor / usr / local / bin in $ PATH stehen.

Toerndev
quelle
Veröffentlichen Sie Ihre Bearbeitung als Antwort! :)
iglvzx
1
Ich würde, aber ich muss 7 Stunden warten. :)
Toerndev

Antworten:

9

Yaourt verwendet anscheinend den ersten Eintrag in $ PATH, /usr/binmuss also vorher /usr/local/binda sein.

Das Ändern dieses /etc/profileProblems löste das Problem.

Toerndev
quelle
2
Programme verwenden immer den ersten Eintrag in $ PATH. Das eigentliche Problem scheint zu sein, dass Sie yaourt zweimal installiert haben , in /usrund /usr/local.
Benutzer1686
Das ist gut zu wissen! Wie können Sie feststellen, dass es zweimal installiert ist? Ich habe es mit pacman -Rs entfernt, bevor ich die neue Version installiert habe.
Toerndev
1

Installieren Sie die Paketabfrage mit leer neu --prefix:./configure --prefix=

Adrian
quelle
1

Ich hatte das gleiche Problem. Das Problem (wie in anderen Antworten erwähnt) ist, dass wenn Sie ausführen:

[linux]$ echo $PATH
[linux]$ /usr/local/sbin:/usr/local/bin:/usr/bin .....

Beachten Sie, dass / usr / local / sbin und / usr / local / bin zuerst angezeigt werden, sodass die gesuchten Programme von diesen Speicherorten übernommen werden (sofern vorhanden).

Schauen Sie in / usr / local / bin nach, ob Sie dort die Paketabfrage sehen können. Wenn Sie können, werden Ihre Probleme dadurch verursacht, dass es nicht vorhanden sein sollte (es sei denn, Sie haben es dort installiert). Damit. Lass es uns beheben ......

Entfernen Sie zunächst 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...

Und dann entfernen Sie die Paketabfrage:

[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...

Entfernen Sie abschließend manuell die streunende Paketabfrage-Binärdatei:

[linux]$ sudo rm -rf /usr/local/bin/package-query

Installieren Sie nun yaourt (und die Paketabfrage) mithilfe der hier angegebenen Anweisungen erneut: https://archlinux.fr/yaourt-en

Und du solltest gut gehen.

Matt Conway
quelle