Como criar um ambiente para bibliotecas e binários?

2

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?

    
por Magicloud 17.06.2014 / 10:53

2 respostas

2

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.

    
por 18.06.2014 / 01:24
0

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.

    
por 18.06.2014 / 03:41