Weisen Sie pkg-config an, * .pc-Dateien auch systemweit in / usr / local / lib / pkgconfig zu suchen


8

Im Moment pkg-configschaut nur rein /usr/lib/pkgconfig. Ich kann es für einen Benutzer anpassen, indem ich die PKG_CONFIG_PATHUmgebungsvariable exportiere , aber ich habe wieder einmal vergessen, es für root zu tun, und habe mich verschwendet, mich zu fragen, warum mein Plugin nicht richtig installiert ist (das verwendete Makefile pkg-config). Wie kann es also systemweit eingestellt werden, sodass es immer auf beide /usr/libund /usr/local/lib?

Antworten:


3

Der traditionelle Ort, um eine Umgebungsvariable systemweit zu definieren, ist /etc/profile. Diese Datei wird von Bourne-Shells (einschließlich Bash, Ksh, Ash) gelesen, wenn Sie sich für eine Sitzung im Textmodus anmelden, entweder lokal (auf einer Textmodus-Konsole) oder remote (über ssh). Wenn Sie sich in einer grafischen Umgebung anmelden, /etc/profilekann dies je nach Anmeldemanager, Desktop-Umgebung und Betriebssystemverteilung gelesen oder nicht gelesen werden.

Eine bessere Methode, falls auf Ihrem System verfügbar, besteht darin, die Umgebungsvariable in zu definieren /etc/environment. Diese Datei wird von PAM gelesen , insbesondere vom pam_envModul . Diese Variablen sind in allen Sitzungen verfügbar, die mit einer Anmeldemethode gestartet wurden, die PAM verwendet und auf die das pam_envModul in /etc/pam.confoder verweist /etc/pam.d/$method.


-2

Wahrscheinlich ist es am einfachsten, wenn auch nicht 100% zuverlässig, es hinzuzufügen /etc/bashrc.

Es ist nicht zuverlässig, da jeder einzelne Benutzer festlegen kann, dass es nicht verarbeitet wird /etc/bashrc.

Wenn Sie den komplexeren Weg gehen möchten, können Sie einen Wrapper erstellen, der ihn festlegt. Zuerst Sie umbenennen pkg-configzu pkg-config-real, dann ein neues Skript machen benannt , pkg-configdie die Variablen gesetzt werden.

(Als root oder sudo verwenden)

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

Erstellen Sie dann eine neue Datei in / usr / bin / pkg-config mit folgendem Inhalt:

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

Stellen Sie sicher, dass es ausführbar ist.

chmod 755 pkg-config

2
/etc/bashrcist nicht der richtige Ort, siehe Unterschied zwischen .bashrc und .bash_profile . Sie sollten nicht empfehlen, eine Datei in zu /usr/binändern. Es wäre besser, von dort aus zu erstellen /usr/local/bin/pkg-configund anzurufen /usr/bin/pkg-config. In Ihrem Skript müssen Sie "$@"nicht verwenden $*; weitere Verbesserungen: #!/bin/shund exec pkg-config-real.
Gilles 'SO - hör auf böse zu sein'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.