Dlaczego patrzysz w niewłaściwe miejsce (działa Pacman)?

8

Po usunięciu pakietu Yaourt i zapytania o pakiet, aktualizacji Pacmana do wersji 4.0.1 i ponownej instalacji najnowszego zapytania i pakietu z AUR, nie mogę już go używać. Mówi mi:

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

Nie rozumiem, dlaczego teraz tam szuka, a nie w / etc. Tymczasem pacman działa normalnie. Jeśli utworzę dowiązanie symboliczne do pacman.conf, zamiast tego pojawia się następujący błąd:

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

Moja $ PATH to:

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

Próbowałem zajrzeć do twojego PKGBUILD przed instalacją, ponownie zainstalować go, zajrzeć do pliku skryptu yaourt i nie mogę znaleźć niczego podejrzanego. Nie wiesz, czego szukać, co mogło się stać?

EDYCJA: Znaleziono rozwiązanie: / usr / bin musi być przed / usr / local / bin w $ PATH.

Toerndev
źródło
Opublikuj swoją zmianę jako odpowiedź! :)
iglvzx,
1
Chciałbym, ale muszę poczekać 7 godzin. :)
Toerndev

Odpowiedzi:

9

Yaourt najwyraźniej używa pierwszego wpisu w $ PATH, więc /usr/binmusi być przed /usr/local/binnim.

Zmiana tego /etc/profilerozwiązała problem.

Toerndev
źródło
2
Programy zawsze używają pierwszego wpisu w $ PATH. Prawdziwy problem wydaje się, że masz yaourt zainstalowane dwa razy , w /usri /usr/local.
user1686,
Dobrze wiedzieć! Jak rozpoznać, że jest zainstalowany dwukrotnie? Usunąłem go za pomocą pacman -Rs przed zainstalowaniem nowej wersji.
Toerndev
1

Ponownie zainstaluj zapytanie o pakiet, używając pustego --prefix:./configure --prefix=

Adrian
źródło
1

Miałem ten sam problem. Problem (jak wspomniano w innych odpowiedziach) polega na tym, że jeśli uruchomisz:

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

Zauważ, że / usr / local / sbin i / usr / local / bin pojawiają się jako pierwsze, więc wyszukiwane programy zostaną pobrane z tych lokalizacji (jeśli istnieją).

Zajrzyj do / usr / local / bin, aby zobaczyć, czy możesz tam zobaczyć zapytanie o pakiet; jeśli możesz, twoje problemy są przez to spowodowane, nie powinno tam być (chyba że tam zainstalowałeś). Więc. Naprawmy to ......

Zacznij od usunięcia 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...

A następnie usuń zapytanie o pakiet:

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

Na koniec ręcznie usuń binarne zapytanie binarne pakietu:

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

Teraz ponownie zainstaluj yaourt (i zapytanie o pakiet), korzystając z instrukcji podanych tutaj: https://archlinux.fr/yaourt-en

I powinieneś być dobry.

Matt Conway
źródło