LFS에서 /tools를 제거할 때 발생할 수 있는 문제

LFS에서 /tools를 제거할 때 발생할 수 있는 문제

최근에 처음부터 Linux를 구축했는데 이제 /tools 디렉토리를 삭제하고 싶습니다. 하지만 달려들기 전에 나는 달려갔어

ldd /bin/* | ldd /bin/* | grep '/도구'

이것은 나에게 이것을 준다

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유일한 사례만을 참조하는 것 같습니다 kmod. lsmod 다른 항목을 확인했는데 모두 올바른 항목을 가리킵니다. 예를 들어

/bin/lzcat:
linux-vdso.so.1 (0x00007ffdee0db000)
liblzma.so.5 => /lib/liblzma.so.5 (0x00007ff6cb537000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007ff6cb31a000 ) )
libc.so.6 => /lib/libc.so.6 (0x00007ff6caf76000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff6cb75c000)

여기서는 모두 를 가리킨다는 점에 유의하세요 /lib.

그럼 계속해야 할까요?

답변1

아마도.

출력에는 ldd바이너리가 사용할 라이브러리의 이름이 포함됩니다.뒤쪽에검색 라이브러리 검색 경로입니다. 디렉터리를 가리키는 일부 /tools구성(예 $LD_LIBRARY_PATH: 항목 )이 있는 경우 ld.so.conf이를 제거해 보세요. 이 작업을 수행한 후 ldd디렉터리를 가리키지 않으면 괜찮을 것입니다./tools

그렇다면 바이너리가 RPATH세트로 컴파일되었을 것입니다. An은 RPATH컴파일된 바이너리에 저장된 공유 라이브러리의 하드코드된 위치입니다. 일부 극단적인 경우에는 유용할 수 있지만 귀하의 경우에는 확실히 도움이 되지 않습니다. 설정된 경우 라는 도구를 사용하여 chrpath변경하거나 제거 할 수 있습니다.

관련 정보