데스크탑 Linux에서 실행되지 않는 도구가 있습니다. 그래서 모든 요구 사항이 포함된 폴더를 만들고 해당 폴더에서 실행하고 싶습니다. 어떤 이유로 가상 머신이나 컨테이너는 여기서 솔루션이 아닙니다.
Ubuntu Trusty를 부팅하고 /data/LTS
chroot 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
일하다.