Mengapa yaourt mencari di tempat yang salah (pacman bekerja)?

8

Setelah menghapus yaourt dan paket-query, memutakhirkan pacman ke v4.0.1 dan menginstal ulang paket-query dan yaourt terbaru dari AUR, saya tidak bisa menggunakan yaourt lagi. Ini memberitahu saya:

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

Saya tidak mengerti mengapa itu terlihat di sana sekarang dan tidak di / etc. Sementara pacman bekerja dengan normal. Jika saya membuat symlink ke pacman.conf, saya mendapatkan error berikut:

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

$ PATH saya adalah:

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

Saya sudah mencoba mencari di dalam yaourt PKGBUILD sebelum menginstal, menginstal ulang, mencari di file script yaourt, dan saya tidak dapat menemukan sesuatu yang mencurigakan. Tidak yakin harus mencari apa, apa yang bisa terjadi?

EDIT: Menemukan solusinya: / usr / bin harus sebelum / usr / local / bin di $ PATH.

Toerndev
sumber
Poskan hasil edit Anda sebagai jawaban! :)
iglvzx
1
Ya, tapi saya harus menunggu 7 jam. :)
Toerndev

Jawaban:

9

Yaourt rupanya menggunakan entri pertama dalam $ PATH, jadi /usr/binharus sebelum itu /usr/local/binada.

Mengubah ini /etc/profilememecahkan masalah.

Toerndev
sumber
2
Program selalu menggunakan entri pertama dalam $ PATH. Masalah sebenarnya tampaknya adalah bahwa Anda telah menginstal yaourt dua kali , di /usrdan /usr/local.
user1686
Itu menyenangkan untuk diketahui! Bagaimana Anda bisa tahu bahwa itu dipasang dua kali? Saya menghapusnya dengan pacman -Rs sebelum menginstal versi baru.
Toerndev
1

Instal ulang kueri paket menggunakan kosong --prefix:./configure --prefix=

Adrian
sumber
1

Saya memiliki masalah yang sama. Masalahnya (seperti yang disebutkan dalam jawaban lain) adalah bahwa jika Anda menjalankan:

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

Perhatikan bahwa / usr / local / sbin dan / usr / local / bin muncul terlebih dahulu, sehingga program yang dicari akan diambil dari lokasi ini (jika ada).

Lihat / usr / local / bin untuk melihat apakah Anda dapat melihat paket-permintaan di sana; jika Anda bisa, maka masalah Anda disebabkan oleh ini, itu seharusnya tidak ada (kecuali Anda menginstalnya di sana). Begitu. Mari kita perbaiki ......

Mulailah dengan menghapus 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...

Dan kemudian hapus permintaan paket:

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

Akhirnya, secara manual menghapus biner paket-permintaan liar:

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

Sekarang, instal ulang yaourt (dan paket-permintaan) menggunakan instruksi yang disediakan di sini: https://archlinux.fr/yaourt-en

Dan Anda harus baik untuk pergi.

Matt Conway
sumber