LD_LIBRARY_PATH 변수가 환경에서 누락 된 것이 정상입니까? 터미널 ( ) 뿐만 아니라

우연히도 데비안 Jessie에는 LD_LIBRARY_PATH변수 가 없습니다 (정확히 말하면 printenv | grep LD링커와 관련이 없으며 아무것도 표시하지 echo "$LD_LIBRARY_PATH"않음).

기본 터미널 ( ) 뿐만 아니라 x 터미널 에뮬레이터 ( setgid로 인해 지워질 수도 있음Ctrl+Alt+F1 )의 경우입니다.

나는 그것이 LD_LIBRARY_PATH 나쁜 것으로 간주 되어 데비안이 어떻게 든 그것을 막을 수도 있지만, 반면에 /etc/ld.so.conf.d/추가 할 디렉토리가 들어있는 파일이 몇 개 있습니다 LD_LIBRARY_PATH. 내 rc 파일 (내가 아는) LD_LIBRARY_PATH중 어느 것도 엉망이 아닙니다.

LD_LIBRARY_PATH변수 가 보이지 않습니까?



답변

그렇습니다 LD_LIBRARY_PATH. 명시적인 내용이없는 것이 일반적입니다 . ldconfig (8)ld-linux (8)rpath에 대해서도 읽으십시오 . 이주의 ldconfig업데이트 /etc/ld.so.cache가 아닌를 LD_LIBRARY_PATH. 때때로 당신은 설정합니다 RPATH 명시 적으로 실행의를 -Wl,-rpath,디렉토리 에 전달 gcc링크시.

필요한 경우 LD_LIBRARY_PATH(아마도 안 됨) 직접 설정하십시오 (예 🙂 ~/.bashrc.

당신이, 당신이 할 수 예를 들어, 시스템 전체의 설정이 필요하면 추가하는 것을 고려 /usr/local/lib/에서 /etc/ld.so.conf실행 ldconfig이 모든 라이브러리를 설치 한 후.

AFAIK $LD_LIBRARY_PATHexecve (2) 후에 동적 링커 ld-linux.so(및이를 사용하는 dlopen (3) ) 만 사용합니다 . ldd (1) 도 참조하십시오 .

자세한 내용은 Drepper의 공유 라이브러리 작성 방법을 읽으십시오 .


답변