Почему ты смотришь не туда (pacman работает)?

8

После удаления yaourt и пакета-запроса, обновления pacman до v4.0.1 и переустановки последнего пакета-запроса и yaourt из AUR я больше не могу использовать 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 должен быть перед / usr / local / bin в $ PATH.

Toerndev
источник
Опубликуйте свои изменения в качестве ответа! :)
iglvzx
1
Я бы, но мне нужно подождать 7 часов. :)
Toerndev

Ответы:

9

Yaourt, очевидно, использует первую запись в $ PATH, поэтому /usr/binдолжна быть до /usr/local/binэтого.

Изменение этого /etc/profileрешило проблему.

Toerndev
источник
2
Программы всегда используют первую запись в $ PATH. Реальная проблема , кажется, что у вас есть Yaourt установлены в два раза , в /usrи /usr/local.
user1686
Это хорошо знать! Как вы можете сказать, что он установлен дважды? Я удалил его с помощью pacman -Rs перед установкой новой версии.
Toerndev
1

Переустановите пакет-запрос с помощью пустого --prefix:./configure --prefix=

Адриан
источник
1

Я была такая же проблема. Проблема (как упоминалось в других ответах) заключается в том, что если вы запустите:

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

Наконец, вручную удалите случайный двоичный файл запроса пакета:

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

Теперь переустановите yaourt (и package-query), используя инструкции, приведенные здесь: https://archlinux.fr/yaourt-en

И тебе должно быть хорошо идти.

Мэтт Конвей
источник