시스템 전체 /usr/local/lib/pkgconfig에서 *.pc 파일을 찾도록 pkg-config에 지시

시스템 전체 /usr/local/lib/pkgconfig에서 *.pc 파일을 찾도록 pkg-config에 지시

현재는 pkg-config환경 /usr/lib/pkgconfig변수를 내보내서 사용자를 위해 조정할 수 있지만 PKG_CONFIG_PATH다시 루트에 대해 이 작업을 수행하는 것을 잊어버렸고 내 플러그인이 올바르게 설치되지 않은 이유를 궁금해하며 시간을 낭비했습니다(makefile 사용 pkg-config). 그렇다면 항상 /usr/lib합계를 볼 수 있도록 시스템 전체에 어떻게 설정합니까 /usr/local/lib?

답변1

환경 변수를 정의하는 전통적인 장소는 시스템 전체입니다 /etc/profile. 이 파일은 로컬로(텍스트 모드 콘솔에서) 또는 원격으로(ssh를 통해) 텍스트 모드 세션에 로그인할 때 Bourne 스타일 셸(bash, ksh, ash 포함)에서 읽습니다. 그래픽 환경에 로그인한 경우 /etc/profile로그인 관리자, 데스크탑 환경 및 운영 체제 배포에 따라 읽힐 수도 있고 읽히지 않을 수도 있습니다.

더 나은 접근 방식(시스템에서 사용 가능한 경우)은 에서 환경 변수를 정의하는 것입니다 /etc/environment. 이 파일의 독자는 다음과 같습니다.폴리아크릴아미드, 구체적으로pam_env기준 치수. 이러한 변수는 PAM을 사용하는 로그인 방법으로 시작된 모든 세션에서 사용할 수 있으며 모듈은 또는 pam_env에서 참조됩니다 ./etc/pam.conf/etc/pam.d/$method

답변2

아마도 가장 쉽지만 100% 신뢰할 수 있는 방법은 아닌 /etc/bashrc.

개별 사용자가 이를 처리하지 않도록 설정할 수 있으므로 신뢰할 수 없습니다 /etc/bashrc.

좀 더 정교한 방법을 원한다면 래퍼를 만들어 설정할 수 있습니다. 먼저 이름을 변경 pkg-configpkg-config-real다음 pkg-config변수를 설정하기 위해 이름이 지정된 새 스크립트를 만듭니다.

(루트로 또는 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

관련 정보