Скажите pkg-config, что нужно искать файлы * .pc также в / usr / local / lib / pkgconfig для всей системы


8

Щас pkg-configсмотрит только в /usr/lib/pkgconfig. Я могу настроить его для пользователя, экспортируя PKG_CONFIG_PATHпеременную окружения, но еще раз я забыл сделать это для пользователя root и потратил время на размышления о том, почему мой плагин не установлен должным образом (используется make-файл pkg-config). Так как же настроить систему в целом, чтобы она всегда смотрела на оба /usr/libи /usr/local/lib?

Ответы:


3

Традиционное место для определения переменной среды в масштабе всей системы /etc/profile. Этот файл читается оболочками в стиле Борна (включая bash, ksh, ash) при входе в сеанс в текстовом режиме, либо локально (на консоли текстового режима), либо удаленно (через ssh). Если вы входите в графическую среду, вы /etc/profileможете читать или не читать, в зависимости от вашего менеджера входа, среды рабочего стола и дистрибутива операционной системы.

Лучшим методом, если он доступен в вашей системе, является определение переменной среды в /etc/environment. Этот файл читается PAM , в частности pam_envмодулем . Эти переменные доступны во всех сеансах, запускаемых методом входа в систему, который использует PAM и имеет pam_envмодуль, на который есть ссылка в /etc/pam.confили /etc/pam.d/$method.


-2

Вероятно, самым простым, хотя и не на 100% надежным способом было бы добавить его /etc/bashrc.

Это ненадежно, потому что любой отдельный пользователь может установить не обрабатывать /etc/bashrc.

Если вы хотите пойти по более сложному пути, вы можете создать оболочку, которая его установит. Сначала вы переименовываете pkg-configв pkg-config-real, затем создаете новый скрипт с именем pkg-config, который установит переменную.

(От имени root или используйте sudo)

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

Затем создайте новый файл в / usr / bin / pkg-config со следующим содержимым:

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

Обязательно сделайте его исполняемым.

chmod 755 pkg-config

2
/etc/bashrcне то место, смотрите Разница между .bashrc и .bash_profile . Вы не должны рекомендовать изменять файл в /usr/bin; было бы лучше создать /usr/local/bin/pkg-configи позвонить /usr/bin/pkg-configоттуда. В вашем сценарии вы должны использовать "$@", а не $*; дальнейшие улучшения: #!/bin/shи exec pkg-config-real.
Жиль "ТАК - перестань быть злым"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.