¿Por qué yaourt está buscando en el lugar equivocado (pacman funciona)?

8

Después de eliminar yaourt y package-query, actualizar pacman a v4.0.1 y reinstalar la última consulta de paquete y yaourt de AUR, ya no puedo usar yaourt. Me dice:

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

No entiendo por qué está mirando allí ahora y no en / etc. Mientras tanto, pacman está trabajando normalmente. Si creo un enlace simbólico a pacman.conf, aparece el siguiente error:

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

Mi $ PATH es:

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

He intentado buscar en el PKGBUILD de yaourt antes de instalarlo, reinstalarlo, buscar en el archivo de script de yaourt, y no encuentro nada sospechoso. No estoy seguro de qué buscar, ¿qué podría haber sucedido?

EDITAR: Encontró la solución: / usr / bin debe estar antes de / usr / local / bin en $ PATH.

Toerndev
fuente
¡Publica tu edición como respuesta! :)
iglvzx
1
Lo haría, pero necesito esperar 7 horas. :)
Toerndev

Respuestas:

9

Yaourt aparentemente usa la primera entrada en $ PATH, por lo que /usr/bindebe estar antes de /usr/local/binallí.

Cambiar esto en /etc/profileresuelto el problema.

Toerndev
fuente
2
Los programas siempre usan la primera entrada en $ PATH. El verdadero problema parece ser que tiene yaourt instalado en dos ocasiones , en /usry /usr/local.
user1686
¡Es bueno saberlo! ¿Cómo se puede saber que se instala dos veces? Lo eliminé con pacman -Rs antes de instalar la nueva versión.
Toerndev
1

Reinstale package-query usando empty --prefix:./configure --prefix=

Adrian
fuente
1

Tuve el mismo problema El problema (como se menciona en otras respuestas) es que si ejecuta:

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

Observe que / usr / local / sbin y / usr / local / bin aparecen primero, por lo que los programas buscados se tomarán de estas ubicaciones (si existen).

Eche un vistazo en / usr / local / bin para ver si puede ver la consulta de paquete allí; si puede, entonces sus problemas están siendo causados ​​por esto, no debería estar allí (a menos que lo haya instalado allí). Entonces. Vamos a arreglarlo ......

Comience por eliminar 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...

Y luego elimine 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...

Finalmente, elimine manualmente el binario de consulta de paquete perdido:

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

Ahora, reinstale yaourt (y package-query) siguiendo las instrucciones proporcionadas aquí: https://archlinux.fr/yaourt-en

Y deberías estar listo para irte.

Matt Conway
fuente