Por isso, pesquisei muito com diferentes termos de pesquisa, mas não encontrei nada utilizável, apenas que em vez de ldd
eu tenho que usar otool -L
para ver as bibliotecas usadas de um programa.
Eu tentei copiar o bash em ~ / chroot / bin e usei a ferramenta acima nomeada para encontrá-la e também armazená-la lá (bem, é claro, eu fiz com que parecesse o caminho real. / usr tornou ~ / chroot / usr etc).
Mas quando tento usar sudo chroot ~/chroot
, isso me diz que there is no file or directory
do meu shell. Wat.
Eu preciso chroot em um ambiente de "salvar" para compilar um pacote que será executado em um ambiente chrooted também. Especificamente, não consigo obter php
para compilar estático:
Kevins-MacBook-Air:System Ingwie$ otool -L ./bin/php
./bin/php:
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libedit.3.dylib (compatibility version 2.0.0, current version 3.0.0)
/usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
/usr/local/lib/libmcrypt.4.dylib (compatibility version 9.0.0, current version 9.8.0)
/usr/local/lib/libltdl.3.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
/usr/local/lib/libpng16.16.dylib (compatibility version 20.0.0, current version 20.0.0)
/usr/local/lib/libcurl.4.dylib (compatibility version 8.0.0, current version 8.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
/usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.8.0)
/usr/lib/libssl.0.9.8.dylib (compatibility version 0.9.8, current version 47.1.0)
/usr/lib/libcrypto.0.9.8.dylib (compatibility version 0.9.8, current version 47.1.0)
/System/Library/Frameworks/LDAP.framework/Versions/A/LDAP (compatibility version 1.0.0, current version 2.4.0)
Alterar o makefile
de -export-dynamic
para -all-static
e esses truques não fizeram nada. Ainda vai compilar assim. Então, para conseguir isso, eu quero fazer chroot. o pacote usará um script de entrada para reproduzir o chroot e funcionará a partir daí.