리눅스에서 환경 변수 LD_LIBRARY_PATH를 설정하는 방법


213

먼저 명령을 실행했습니다. export LD_LIBRARY_PATH=/usr/local/lib

그런 다음 .bash_profile파일 을 열었습니다 vi ~/.bash_profile.. 이 파일에서 나는 다음을 넣었다.

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

그런 다음 터미널을 닫았다가 다시 시작하면 입력해도 echo $LD_LIBRARY_PATH결과가 표시되지 않습니다.

경로를 영구적으로 설정하는 방법?


9
당신은 당신이 한 일을 수정하려는 경우에는 추가 ... 여기 명백한 밖으로 포인팅 $, 예를 들면export LD_LIBRARY_PATH=$LD_LIBRARY_PATH
쿠키

11
바로 실행 sudo ldconfig그 후
Necktwi

이것은 어리석은 것일 수도 있지만 당신은 $ source ~/.bash_profile했습니까? 나는 그것을 잊는 경향이 있습니다. 그리고 @neckTwi가 ldconfig를 실행한다고 말했듯이
ashley

답변:


208

사용자 지정 추가 우분투에서 예를 들어, 유통에 대해이 작업을 수행 할 수있는 올바른 방법을 자세히되는 추가해야 .conf하는 파일을 /etc/ld.so.conf.d예를 들어,

sudo gedit /etc/ld.so.conf.d/randomLibs.conf

파일 내에서 시스템에 추가하려는 모든 라이브러리가 포함 된 디렉토리의 전체 경로를 작성해야합니다 (예 :

/home/linux/myLocalLibs

파일의 전체 경로가 아닌 dir 경로 만 추가해야합니다. 해당 경로 내의 모든 라이브러리가 자동으로 색인됩니다.

sudo ldconfig이 lib로 시스템을 업데이트하기 위해 저장하고 실행하십시오 .


배포를 언급하지 않아서 죄송합니다. 페도라 16
singha

Joachim Pileborg가 제안한 솔루션 인 Fedora에이 솔루션을 사용할 수 있습니다. 시스템 전체 lib tou가 내 솔루션을 사용해야하는 경우이 lib의보기를 특정 사용자 1 명으로 제한하기로 결정한 경우 유용합니다. 그것은 모두 당신이 찾고있는 것에 달려 있습니다.
user1824407

11
이것이 정말로 올바른 방법입니까? 로컬 라이브러리를 작성하는 사용자가 여러 명이고 /etc/ld.so.conf.d에 두 사용자를 모두 추가했다고 가정 해보십시오. 이제 사용자 A는 사용자 B의 로컬 라이브러리에 연결할 수 있습니다. 안좋다.
ergosys

/usr/local/lib이 파일은 보통 이미 존재하므로 파일을 편집 할 필요가 없습니다 sudo ldconfig.
nyuszika7 시간

1
이상한 것은 모든 너희들과 함께 일했지만, 나에게는 효과가 없었습니다 export LD_LIBRARY_PATH .....
회계사 م

106

이전 경로를 유지하고 덮어 쓰지 마십시오.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/

~ / .bashrc에 추가 할 수 있습니다 :

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/custom/path/' >> ~/.bashrc

36

더하다

LD_LIBRARY_PATH = "/ path / you / want1 : / path / you / want / 2"

/etc/environment

우분투 문서를 참조하십시오 .

수정 : 본인의 조언을 구하고 실제로 설명서를 읽어야합니다. 이것은 LD_LIBRARY_PATH에는 적용되지 않는다고 말합니다 : Ubuntu 9.04 Jaunty Jackalope 이후 LD_LIBRARY_PATH는 $ HOME / .profile, / etc / profile 또는 / etc / environment 파일에서 설정할 수 없습니다. /etc/ld.so.conf.d/ .conf 구성 파일을 사용해야 합니다. * 따라서 user1824407의 답이 있습니다.


와우, 나는 그 페이지를 여러 번보고 그것을 간과했다. 그것을 발견하고 우리의 관심을 가져 주셔서 감사합니다.
Michael Scheper

4
우분투는 특별한 경우입니다. 우분투의 견해는 모든 사용자가 동일한 라이브러리를 원하고 각 라이브러리마다 하나의 장소 만 있다는 것입니다 (런치 패드 버그 # 366728에서 토론 내용 읽기). 그러나 다중 사용자 연구 또는 개발 시스템에서는 각 사용자가 자신의 라이브러리 버전을 가질 수 있기를 원합니다. 대부분의 Linux 배포판에서이를 허용하고 수년 동안 그렇게했습니다.
Joachim Wagner

9
4 시간 동안 PATH 및 PKG_CONFIG_PATH를 설정할 수 있지만 LD_LIBRARY_PATH는 설정할 수없는 이유를 알아 냈습니다. 난 못해
Mikhail Cheshkov

@JoachimWagner 예, 맞습니다. 왜 conda 및 / 또는 bioconda 또는 virtenv가 특별한 환경 변수를 가진 특정 프로그램을 호출하는 데 선호되는 방법입니까? 포함 된 환경을 사용하여 실수로 LD_LIBRARY 경로를 설정하면 시스템적인 문제 / 문제가 발생하지 않습니다.
Andor Kiss

23

파일 .bash_profile은 로그인 쉘에 의해서만 실행됩니다. 에 넣거나 ~/.bashrc로그 아웃했다가 다시 로그인 해야 할 수도 있습니다 .


Joachim Pileborg에게 감사합니다. 시스템을 재부팅했는데 경로가 영구적으로 설정되었습니다.
singha


17

어떤 이유로 든 bashrc가 편집 후 리소스를 다시 가져와야한다는 사실은 아무도 언급하지 않았습니다. 당신도 로그 아웃 (위에서 언급 한 같은)에 다시 로그인하지만 당신은 명령을 사용할 수 있습니다 : source ~/.bashrc. ~/.bashrc.


14

넣어 export LD_LIBRARY_PATH=/usr/local/lib에서 ~/.bashrc[스크립트의 끝 사이의 모든 재정의를 방지하는 것이 바람직으로, 기본은 ~/.bashrc많은 함께 제공 if-else문]

새 터미널 / 콘솔을 열 때마다 LD_LIBRARY_PATH반영됩니다 게시


배포를 언급하지 않아서 죄송합니다. 페도라 16
singha

7
  1. 홈 폴더로 이동하여 .profile을 편집하십시오.
  2. 다음 줄을 끝에 놓으십시오

    export LD_LIBRARY_PATH=<your path>

  3. 저장하고 종료.

  4. 이 명령을 실행

    sudo ldconfig


3

민트 15에서 17까지 다음을 수행하며 우분투 서버 12.04 이상에서도 작동합니다.

sudo vi /etc/bash.bashrc 

맨 아래로 스크롤하여 다음을 추가하십시오.

export LD_LIBRARY_PATH=.

모든 사용자는 환경 변수가 추가되었습니다.


3

당신은 사용자 정의 스크립트를 추가 시도해 볼 수도, 말 myenv_vars.sh에서 /etc/profile.d.

cd /etc/profile.d
sudo touch myenv_vars.sh
sudo gedit myenv_vars.sh

이것을 빈 파일에 추가하고 저장하십시오.

export LD_LIBRARY_PATH=/usr/local/lib

로그 아웃 및 로그인 LD_LIBRARY_PATH이 영구적으로 설정되었습니다.


1
멋진 답변입니다. 시스템 초기화 중에 매번 경로를 내보내고 물리적으로 / etc / bashrc를 편집하는 것보다 훨씬 안전한 경로를 선택하는 것이 가장 좋습니다
Joseph
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.