Apenas certificando-me de que entendi direito - eu ligo
ldd /path/to/executable
e retorna "não é um executável dinâmico". Isso significa que não depende de outras bibliotecas, correto? Em caso afirmativo, isso significa que pode ser transferido para outra caixa do Ubuntu sem se preocupar com dependências?
compiling
shared-library
Jason
fonte
fonte
ldd
ainda imprime as dependências de 32 bits.@Calmarius está correto, isso acontece se você considerar um exe de 32 bits, sem bibliotecas básicas de 32 bits.
Estou tentando atualizar meu sistema (uma nova instalação do Ubuntu 16.04, a partir de 12.04), tenho que instalar um antigo serviço de 32 bits propiciatório
avserver
, que requeria32-libs
(não está mais disponível). Isto significa tantodpkg
eapt-get
são infelizes (o que quer que eu faça, leva-me aapt-get -f install
, e se eu executar isso, ele insiste que eu desinstalar o pacote de serviços), e meu serviço não será iniciado.Para provar que isso se deve a falta de bibliotecas de 32 bits, montei meu sistema antigo (Ubuntu 12.04, com
ia32-libs
e bibliotecas de 32 bits)/sda2
. Assegurando que/opt
(contendo meu binário de 32 bits) esteja montado/sda2/opt
, eu possochroot /sda2
e, emldd
seguida, execute conforme o planejado.Para corrigir isso, eu poderia ter instalado manualmente todos os pacotes de bibliotecas dependentes com: i386 (arch). No entanto, decidi, em vez de tentar descobrir quais eram minhas dependências, instalei o wine (que geralmente é de 32 bits e instala as bibliotecas básicas e uma carga maior do que realmente não preciso, mas estou de acordo com isso).
Para corrigir
dpkg
eapt-get
, editei/var/lib/dpkg/status
, localizando o pacote para o meu serviço e removiia32-libs
. Agoradpkg
eapt-get
é felizFeito isso,
ldd
felizmente relata: -root@withnail:/opt/<service path># ldd avserver linux-gate.so.1 => (0xf77a6000) libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf778f000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7772000) libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xf776b000) libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf7752000) libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xf7720000) libktssl.so.1.0.0 => /opt/<service path>/libktssl.so.1.0.0 (0xf76cb000) libktcrypto.so.1.0.0 => /opt/<service path>/libktcrypto.so.1.0.0 (0xf756b000) libktz.so.1 => /opt/<service path>/libktz.so.1 (0xf7558000) librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf754f000) libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf73d8000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7383000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7366000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf71af000) /lib/ld-linux.so.2 (0x565b1000)
fonte