>

최근에 Linux From Scratch를 만들었고/tools 디렉토리를 삭제하고 싶습니다. 하지만 돌진하기 전에 달려 갔다

와이즈 비즈

나에게 이걸 줬어

와이즈 비즈 그런 다음

ldd /bin/* | grep '/tools'

의 출력을 수동으로 확인했습니다.  알아 냈다

와이즈 비즈

그리고

와이즈 비즈

liblzma.so.5 =>/tools/lib/liblzma.so.5 (0x00007fd7e82f9000)
libpthread.so.0 =>/tools/lib/libpthread.so.0 (0x00007fd7e7ec3000)
libc.so.6 =>/tools/lib/libc.so.6 (0x00007fd7e7b1f000)
liblzma.so.5 =>/tools/lib/liblzma.so.5 (0x00007f2ff2852000)
libpthread.so.0 =>/tools/lib/libpthread.so.0 (0x00007f2ff241c000)
libc.so.6 =>/tools/lib/libc.so.6 (0x00007f2ff2078000)

만 언급하는 것 같습니다  오직 ldd 의 경우  그리고

/bin/kmod: linux-vdso.so.1 (0x00007ffd71dbd000)
liblzma.so.5 =>/tools/lib/liblzma.so.5 (0x00007f14721ab000)
libz.so.1 =>/lib/libz.so.1 (0x00007f1471f92000)
libpthread.so.0 =>/tools/lib/libpthread.so.0 (0x00007f1471d75000)
libc.so.6 =>/tools/lib/libc.so.6 (0x00007f14719d1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f14723d0000)

다른 항목을 확인했는데 모두 올바른 항목을 가리키고 있습니다. 예를 들어

와이즈 비즈

여기서 모두

/bin/lsmod:
linux-vdso.so.1 (0x00007ffcc1db7000)
liblzma.so.5 =>/tools/lib/liblzma.so.5 (0x00007f3cb7285000)
libz.so.1 =>/lib/libz.so.1 (0x00007f3cb706c000)
libpthread.so.0 =>/tools/lib/libpthread.so.0 (0x00007f3cb6e4f000)
libc.so.6 =>/tools/lib/libc.so.6 (0x00007f3cb6aab000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3cb74aa000)

를 가리키고 있습니다. .

계속 진행해야합니까?

/tools
  • 답변 # 1

    아마도

    와이즈 비즈  출력은 바이너리가 라이브러리 검색 경로를 검색 한 후after사용할 라이브러리의 이름을 포함합니다. ldd 를 가리키는 구성이있는 경우  디렉토리 (예 : /tools  또는 $LD_LIBRARY_PATH  항목)을 제거한 다음 제거하십시오. 만약 ld.so.conf  당신의 ldd 를 가리 키지 않습니다  당신이 그렇게 한 후 디렉토리, 당신은 괜찮을 것입니다.

    그렇다면, 바이너리는 아마도 /tools 로 컴파일 될 것입니다.  세트. 와이즈 비즈  컴파일 된 바이너리에 저장된 공유 라이브러리의 하드 코드 된 위치입니다. 일부 경우에는 유용 ​​할 수 있지만 상황에 따라 결정적으로 도움이되지 않습니다. 설정되면 RPATH 라는 도구가 있습니다  이를 변경하거나 제거 할 수 있습니다.

    RPATH

  • 이전 ubuntu - 이메일 전송 지연을 어떻게 디버깅합니까?
  • 다음 linux - 링커 공유 라이브러리 기본 경로 /lib64/libcso6, /lib64/libcso6을 리디렉션하는 방법 - 버전`glibc_214 '를 찾을 수 없음