2012-07-15 3 views
4

난 그냥 우분투에 SPIKEfile (fuzzer)를 설치 한 및 다음과 같은 말한다 : '당신이누군가가 LD_LIBRARY_PATH가 (유닉스) 무엇을 초보자 언어로 설명 할 수 있습니까?

libdlrpc.so하는 libdisasm.so하는 경로와 경로를 포함하도록 LD_LIBRARY_PATH를 설정해야 이제

을 printenv '는 그러한 변수가 존재하지 않음을 나타냅니다.

초보자 용으로이 사람이 실제로 의미하는 것과 문제를 해결하는 방법을 친절하게 제게 설명해주십시오. 나는 꽤 경험이없는 리눅스 사용자이다. 미리 감사드립니다.

P. 나는 그물에있는 대부분의 것들이 도움이되지 않는다는 것을 알았고, 내가하고있는 것을 모른 채 복사 + 붙여 넣기를하고 싶지 않았다.

+0

내가 성공했다면? 나는 지금 : eliezer @ 우분투 : ~ $ echo $ LD_LIBRARY_PATH /Desktop/SPIKEfile/libdlrpc.so:/Desktop/SPIKEfile/libdisasm/src/arch/i386/libdisasm/libdisasm.so:이 모양이 맞습니까? 고마워요 –

답변

4

리눅스는 공유 라이브러리의 개념, 즉 실행 파일로 구워지지 않았지만 대신 프로그램이 실행될 때 동적으로 링크되는 코드 라이브러리입니다. 실행 파일에는 필요한 라이브러리 이름에 대한 참조 만 포함됩니다.

LD_LIBRARY_PATH은 Linux 로딩 시간 링커가 이러한 라이브러리를 찾을 때 사용해야하는 추가 경로를 나열하는 환경 변수입니다. 그것은 당신이 배쉬를 사용하는 가정 단순히 형태

/path/to/somewhere:/path/to/somewhere_else:/path/to/narnia 

콜론으로 구분 된 목록입니다, 당신은 (이 $LD_LIBRARY_PATH 처음에 비어 있거나 설정되지 않은 경우에도 작동) 목록에 추가 경로를 앞에 추가하려면 다음을 수행 할 수 있습니다

export LD_LIBRARY_PATH=/path/to/dir/containing/libdisasm.so:$LD_LIBRARY_PATH 

(libdlrpc.so와 유사).

+0

OLI 찰스 워드 @를 볼 수 있도록하는 다른 방법에 대한

# vi .bash_profile 

+2

@ESHindler :'LD_LIBRARY_PATH'는 라이브러리 자체가 아니라 포함하는 디렉토리에 대한 경로를 포함해야합니다. 예 : 이것은 유용한 조언을 위해 : http://www.wiredrevolution.com/system-administration/how-to-correctly-use-ld_library_path. –

+0

'LD_LIBRARY_PATH'를 적절하게 설정 한 후, 일부 (동적으로 링크 된 ELF) * 바이너리 * 실행 파일 (예 : * SPIKEfile * 소프트웨어 패키지)에서'ldd' 명령을 실행하십시오. –

1

가끔 스크립트를 실행할 때 일부 라이브러리가 누락 된 것 같아서 Solaris에서 LD_LIBRARY_PATH를 사용했습니다. 이 변수를 스크립트의 시작 부분에두면 더 안전하게 작업 할 수 있습니다.

(아마 당신이 찾고있는 것을) 언급 할 가치가 뭔가 :

ldd /path/to/narnia 

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/dir/containing/lib 

(그것을 이전에 설정 한 디렉토리를 잃지 않도록이 방법을) 해야하는 다시 COMAND를 사용하여 작업 :

ldd /path/to/narnia 
    librt.so.1 => /lib/librt.so.1 (0x00002b4eca08e000) 
    libc.so.6 => /lib/libc.so.6 (0x00002b4eca49f000) 
    libpthread.so.0 => /lib/libpthread.so.0 (0x00002b4eca7df000) 
    /lib64/ld-linux-x86-64.so.2 (0x00002b4ec9e72000) 
    libmylib.so.1 => ~/myprogdir/lib/libmylib.so.1 (0x00002b4eca9fa000) 

사용자 프로필에 설정을 추가하려면 여전히 라이브러리를 찾을 수 없으면 오류가 발생합니다.

어떻게 알 수 있습니까 : 라이브러리를 사용할 수 http://serverfault.com/questions/201709/how-to-set-ld-library-path-in-ubuntu
관련 문제