Solo asegurándome de que entendí bien, llamo
ldd /path/to/executable
y devuelve "no un ejecutable dinámico". Esto significa que no depende de otras bibliotecas, ¿correcto? Si es así, ¿significa que se puede transferir a otro cuadro de Ubuntu sin preocuparse por las dependencias?
compiling
shared-library
Jason
fuente
fuente
ldd
aún imprime las dependencias de 32 bits.@Calmarius es correcto, esto sucede si considera un exe de 32 bits, incluso sin bibliotecas básicas de 32 bits.
Estoy intentando actualizar mi sistema (una nueva instalación de Ubuntu 16.04, desde 12.04), tengo que instalar un antiguo servicio de 32 bits propiciatorio
avserver
, que requiereia32-libs
(ya no está disponible). Esto significa que ambosdpkg
yapt-get
están descontentos (lo que haga, que me incita aapt-get -f install
, y si funciono eso, insiste puedo desinstalar el paquete de servicios), y mi servicio no se iniciará.Para demostrar que esto se debe a la falta de bibliotecas de 32 bits, he montado mi antiguo sistema (Ubuntu 12.04, con
ia32-libs
y bibliotecas de 32 bits)/sda2
. Asegurándome/opt
(que contiene mi binario de 32 bits) está montado/sda2/opt
, puedochroot /sda2
yldd
luego se ejecuta según lo previsto.Para solucionar esto, podría haber instalado manualmente todos los paquetes de la biblioteca dependiente con: i386 (arch). Sin embargo, decidí en lugar de tratar de averiguar cuáles eran mis dependencias, instalé wine (que es principalmente de 32 bits, por lo que instala las bibliotecas básicas y una carga más que realmente no necesito, pero estoy de acuerdo con eso).
Para arreglar
dpkg
yapt-get
, edité/var/lib/dpkg/status
, encontrar el paquete para mi servicio, y lo eliminéia32-libs
. Ahoradpkg
yapt-get
son felicesHecho esto,
ldd
felizmente informa: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)
fuente