LD_LIBRARY_PATH 변수가 환경에서 누락 된 것이 정상입니까?


15

우연히도 데비안 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변수 가 보이지 않습니까?

답변:


22

그렇습니다 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의 공유 라이브러리 작성 방법을 읽으십시오 .


LD_LIBRARY_PATH는 running 의 제품 이지만 내 실수였습니다 ldconfig. 한편, 파일과 함께 ldconfig 의 입력 입니다 /etc/ld.so.conf.
calavera.info

1
내 느낌은 ldconfig사용하지 않는 것입니다 $LD_LIBRARY_PATH( ld-linux.so시간 에만 사용됨 )
Basile Starynkevitch

3
@ calavera.info 둘 다 아닙니다. 동적 링커는 런타임시 출력 LD_LIBRARY_PATH 함께 사용 ldconfig합니다. ldconfig사용하거나 변경하지 않습니다 LD_LIBRARY_PATH.
hobbs

이제는 "classpath"가 사실상 동적 연결의 유일한 구성 인 Java에서 너무 많은 시간을 소비함으로써 완전히 망가 졌음을 알 수 있습니다. 고마워 지금은 모든 것이 분명해 보입니다.
calavera.info
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.