Beri tahu pkg-config untuk mencari file * .pc juga di / usr / local / lib / pkgconfig, di seluruh sistem

8

Saat ini pkg-confighanya terlihat di /usr/lib/pkgconfig. Saya dapat menyesuaikannya untuk pengguna dengan mengekspor PKG_CONFIG_PATHvariabel lingkungan, tetapi sekali lagi saya lupa melakukannya untuk root dan membuang waktu bertanya-tanya, mengapa plugin saya tidak diinstal dengan benar (makefile digunakan pkg-config). Jadi, bagaimana mengaturnya secara luas, sehingga akan selalu terlihat baik bagi keduanya /usr/libdan /usr/local/lib?

gruszczy
sumber

Jawaban:

3

Tempat tradisional untuk mendefinisikan variabel lingkungan sistem-lebar adalah /etc/profile. File ini dibaca oleh cangkang Bourne-style (termasuk bash, ksh, ash) ketika Anda masuk untuk sesi mode teks, baik secara lokal (pada konsol mode teks) atau dari jarak jauh (lebih dari ssh). Jika Anda masuk dalam lingkungan grafis, /etc/profilemungkin atau mungkin tidak dibaca, tergantung pada manajer login Anda, lingkungan desktop dan distribusi sistem operasi.

Metode yang lebih baik, jika tersedia di sistem Anda, adalah mendefinisikan variabel lingkungan di /etc/environment. File ini dibaca oleh PAM , khususnya oleh pam_envmodul . Variabel-variabel ini tersedia di semua sesi dimulai dengan metode login yang menggunakan PAM dan memiliki pam_envmodul yang direferensikan dalam /etc/pam.confatau /etc/pam.d/$method.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
-2

Mungkin yang termudah, meskipun tidak 100% cara yang dapat diandalkan untuk menambahkannya /etc/bashrc.

Itu tidak dapat diandalkan karena setiap pengguna individu dapat mengatur untuk tidak memproses /etc/bashrc.

Jika Anda ingin menggunakan cara yang lebih rumit, Anda bisa membuat pembungkus yang akan mengaturnya. Pertama Anda mengganti nama pkg-configmenjadi pkg-config-real, lalu buat skrip baru bernama pkg-configyang akan mengatur variabel.

(Sebagai root, atau gunakan sudo)

cd /usr/bin
mv pkg-config pkg-config-real

Kemudian buat file baru di / usr / bin / pkg-config dengan konten berikut:

#!/bin/bash
export PKG_CONFIG_PATH=/usr/lib:/usr/local/lib
pkg-config-real $*

Pastikan untuk membuatnya dapat dieksekusi.

chmod 755 pkg-config
bahamat
sumber
2
/etc/bashrcbukan tempat yang tepat, lihat Perbedaan antara .bashrc dan .bash_profile . Anda sebaiknya tidak memodifikasi file dalam /usr/bin; akan lebih baik untuk membuat /usr/local/bin/pkg-configdan menelepon /usr/bin/pkg-configdari sana. Dalam skrip Anda, Anda harus menggunakan "$@", bukan $*; perbaikan lebih lanjut: #!/bin/shdan exec pkg-config-real.
Gilles 'SO- berhenti bersikap jahat'