Indiquez à pkg-config de regarder les fichiers * .pc également dans / usr / local / lib / pkgconfig, à l'échelle du système

8

En ce moment, pkg-configne regarde que /usr/lib/pkgconfig. Je peux l'ajuster pour un utilisateur en exportant la PKG_CONFIG_PATHvariable d'environnement, mais encore une fois j'ai oublié de le faire pour root et perdu du temps à me demander pourquoi mon plugin n'est pas installé correctement (le makefile utilisé pkg-config). Alors, comment peut-il le définir à l'échelle du système, afin qu'il se penche toujours sur les deux /usr/libet /usr/local/lib?

gruszczy
la source

Réponses:

3

L'endroit traditionnel pour définir une variable d'environnement à l'échelle du système est /etc/profile. Ce fichier est lu par des shells de style Bourne (y compris bash, ksh, ash) lorsque vous vous connectez pour une session en mode texte, soit localement (sur une console en mode texte) soit à distance (via ssh). Si vous vous connectez dans un environnement graphique, /etc/profilepeut ou non être lu, selon votre gestionnaire de connexion, l'environnement de bureau et la distribution du système d'exploitation.

Une meilleure méthode, si elle est disponible sur votre système, consiste à définir la variable d'environnement dans /etc/environment. Ce fichier est lu par PAM , notamment par le pam_envmodule . Ces variables sont disponibles dans toutes les sessions démarrées par une méthode de connexion qui utilise PAM et dont le pam_envmodule est référencé dans /etc/pam.confou /etc/pam.d/$method.

Gilles 'SO- arrête d'être méchant'
la source
-2

Le moyen le plus simple, mais pas fiable à 100%, serait probablement de l'ajouter /etc/bashrc.

Ce n'est pas fiable car tout utilisateur individuel peut définir de ne pas traiter /etc/bashrc.

Si vous voulez aller de manière plus complexe, vous pouvez créer un wrapper qui le définira. Tout d' abord vous renommez pkg-configà pkg-config-real, puis faire un nouveau script nommé pkg-configqui la variable.

(En tant que root, ou utilisez sudo)

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

Créez ensuite un nouveau fichier dans / usr / bin / pkg-config avec le contenu suivant:

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

Assurez-vous de le rendre exécutable.

chmod 755 pkg-config
bahamat
la source
2
/etc/bashrcn'est pas le bon endroit, voir Différence entre .bashrc et .bash_profile . Vous ne devriez pas recommander de modifier un fichier dans /usr/bin; il vaudrait mieux créer /usr/local/bin/pkg-configet appeler à /usr/bin/pkg-configpartir de là. Dans votre script, vous devez utiliser "$@", non $*; améliorations supplémentaires: #!/bin/shet exec pkg-config-real.
Gilles 'SO- arrête d'être méchant'