Isso parece um problema com o carregador. Ou seja, você está usando o carregador do ambiente externo.
Tente prefixar o comando com /data/LTS/lib/ld.so ou ld-X.Y.so Este é o carregador e, ao fazer isso, você usará o do sistema fechado.
Eu tenho uma ferramenta que não pode ser executada no meu Desktop Linux. Então, eu gostaria de criar uma pasta que contenha todos os seus requisitos e executá-la na pasta. Máquina virtual ou contêiner não é uma solução aqui por algum motivo.
Eu criei um Ubuntu Trusty em /data/LTS
e tenho tudo o que a ferramenta precisa instalada, executando uma cadeia chroot em /data/LTS
.
Agora eu emito:
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
Eu recebo:
Inconsistency detected by ld.so: dl-close.c: 759: _dl_close: Assertion 'map->l_init_called' failed!
O que devo fazer?
Motivo encontrado. É por causa do caminho absoluto para ld.so. Sem modificação adicional, / data / LTS / usr / bin / python usará ld.so do sistema atual em vez de ambiente falso.
/data/LTS/lib/ld.so /data/LTS/usr/bin/python /tmp/test.py
funciona.