라이브러리 및 바이너리 환경을 만드는 방법은 무엇입니까?

라이브러리 및 바이너리 환경을 만드는 방법은 무엇입니까?

데스크탑 Linux에서 실행되지 않는 도구가 있습니다. 그래서 모든 요구 사항이 포함된 폴더를 만들고 해당 폴더에서 실행하고 싶습니다. 어떤 이유로 가상 머신이나 컨테이너는 여기서 솔루션이 아닙니다.

Ubuntu Trusty를 부팅하고 /data/LTSchroot Jail을 실행하여 도구에 필요한 모든 것을 설치했습니다 /data/LTS.

이제 나는 다음을 발행합니다:

PATH=/data/LTS/usr/local/sbin:/data/LTS/usr/local/bin:/data/LTS/usr/sbin:/data/LTS/usr/bin:/data/LTS/sbin:/data/LTS/bin \
LD_LIBRARY_PATH=/data/LTS/usr/local/lib:/data/LTS/usr/lib/x86_64-linux-gnu:/data/LTS/usr/lib:/data/LTS/lib/x86_64-linux-gnu:/data/LTS/lib \
PYTHONHOME=/data/LTS/usr \
/data/LTS/usr/bin/python /tmp/test.py

나는 얻다:

ld.so에서 불일치가 감지되었습니다: dl-close.c:759: _dl_close: 'map->l_init_used' 어설션이 실패했습니다!

어떻게 해야 합니까?

답변1

로더 문제인 것 같습니다. 즉, 외부 환경의 로더를 사용하고 있습니다.

This is the loader 명령 앞에 /data/LTS/lib/ld.so 또는 ld-XYso를 추가해 보십시오. 이렇게 하면 닫힌 시스템에서 로더를 사용하게 됩니다.

답변2

이유가 발견되었습니다. 이는 ld.so의 절대 경로 때문입니다. 추가 수정 없이 /data/LTS/usr/bin/python은 가짜 환경이 아닌 실제 시스템의 ld.so를 사용합니다.

/data/LTS/lib/ld.so /data/LTS/usr/bin/python /tmp/test.py일하다.

관련 정보