Di 'a pkg-config di guardare i file * .pc anche in / usr / local / lib / pkgconfig, a livello di sistema


8

In questo momento pkg-configguarda solo dentro /usr/lib/pkgconfig. Posso modificarlo per un utente esportando la PKG_CONFIG_PATHvariabile d'ambiente, ma ancora una volta ho dimenticato di farlo per root e ho perso tempo a chiedermi, perché il mio plugin non è installato correttamente (il makefile utilizzato pkg-config). Quindi, come può impostare il sistema a livello, in modo che guarderebbe sempre ad entrambi /usr/libe /usr/local/lib?

Risposte:


3

Il luogo tradizionale in cui definire una variabile di ambiente a livello di sistema è /etc/profile. Questo file viene letto da shell in stile Bourne (inclusi bash, ksh, ash) quando si accede a una sessione in modalità testo, localmente (su una console in modalità testo) o in remoto (su ssh). Se si accede in un ambiente grafico, /etc/profilepuò essere letto o meno, a seconda del gestore degli accessi, dell'ambiente desktop e della distribuzione del sistema operativo.

Un metodo migliore, se disponibile sul tuo sistema, è definire la variabile di ambiente in /etc/environment. Questo file viene letto da PAM , in particolare dal pam_envmodulo . Queste variabili sono disponibili in tutte le sessioni avviate con un metodo di accesso che utilizza PAM e al quale il pam_envmodulo fa riferimento in /etc/pam.confo /etc/pam.d/$method.


-2

Probabilmente il modo più semplice, anche se non affidabile al 100%, sarebbe quello di aggiungerlo /etc/bashrc.

Non è affidabile perché qualsiasi singolo utente può impostare per non elaborare /etc/bashrc.

Se vuoi andare nel modo più complesso, puoi creare un wrapper che lo imposterà. Prima rinominate pkg-configin pkg-config-real, quindi pkg-configcreate un nuovo script chiamato che imposterà la variabile.

(Come root o usa sudo)

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

Quindi crea un nuovo file in / usr / bin / pkg-config con i seguenti contenuti:

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

Assicurati di renderlo eseguibile.

chmod 755 pkg-config

2
/etc/bashrcnon è il posto giusto, vedi Differenza tra .bashrc e .bash_profile . Non si consiglia di modificare un file in /usr/bin; sarebbe meglio creare /usr/local/bin/pkg-confige chiamare /usr/bin/pkg-configda lì. Nella tua sceneggiatura, devi usare "$@", no $*; ulteriori miglioramenti: #!/bin/she exec pkg-config-real.
Gilles 'SO- smetti di essere malvagio' il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.