Indique a pkg-config que busque archivos * .pc también en / usr / local / lib / pkgconfig, en todo el sistema

8

En este momento pkg-configsolo se ve adentro /usr/lib/pkgconfig. Puedo ajustarlo para un usuario exportando la PKG_CONFIG_PATHvariable de entorno, pero una vez más, olvidé hacerlo para root y perdí el tiempo preguntándome por qué mi complemento no está instalado correctamente (se utiliza el archivo MAKE pkg-config). Entonces, ¿cómo puede configurarlo en todo el sistema, para que siempre se vea en ambos /usr/liby /usr/local/lib?

gruszczy
fuente

Respuestas:

3

El lugar tradicional para definir una variable de entorno en todo el sistema es /etc/profile. Este archivo es leído por los shells de estilo Bourne (incluidos bash, ksh, ash) cuando inicia sesión para una sesión en modo de texto, ya sea localmente (en una consola de modo de texto) o de forma remota (a través de ssh). Si /etc/profileinicia sesión en un entorno gráfico, puede o no leerse, dependiendo de su administrador de inicio de sesión, entorno de escritorio y distribución del sistema operativo.

Un mejor método, si está disponible en su sistema, es definir la variable de entorno en /etc/environment. PAM lee este archivo , específicamente el pam_envmódulo . Estas variables están disponibles en todas las sesiones iniciadas por un método de inicio de sesión que utiliza PAM y tiene el pam_envmódulo referenciado en /etc/pam.confo /etc/pam.d/$method.

Gilles 'SO- deja de ser malvado'
fuente
-2

Probablemente la forma más fácil, aunque no 100% confiable, sería agregarlo /etc/bashrc.

No es confiable porque cualquier usuario individual puede configurar no procesar /etc/bashrc.

Si desea ir por el camino más complejo, puede crear un contenedor que lo establezca. Primero cambia el nombre pkg-configa pkg-config-real, luego pkg-configcrea un nuevo script llamado que establecerá la variable.

(Como root, o usa sudo)

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

Luego cree un nuevo archivo en / usr / bin / pkg-config con los siguientes contenidos:

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

Asegúrese de hacerlo ejecutable.

chmod 755 pkg-config
bahamat
fuente
2
/etc/bashrcno es el lugar correcto, vea Diferencia entre .bashrc y .bash_profile . No debe recomendar modificar un archivo en /usr/bin; Sería mejor crear /usr/local/bin/pkg-configy llamar /usr/bin/pkg-configdesde allí. En su script, debe usar "$@", no $*; mejoras adicionales: #!/bin/shy exec pkg-config-real.
Gilles 'SO- deja de ser malvado'