Portál AbcLinuxu, 12. května 2025 11:49
Jaký je nejlepší způsob spuštění 32-bit aplikace na 64-bit systému?
Reinstaloval jsem server na nový HW z 32-bit systému do 64-bit a jedna aplikace (kterou možná neseženu v 64-bit verzi) nelze spustit.
Současný systém:
# uname -a
Linux iscpNEW 2.6.32-25-server #44-Ubuntu SMP Fri Sep 17 21:13:39 UTC 2010 x86_64 GNU/Linux
Info o 32-bit aplikaci:
# file /opt/avg/avgadmsrv/bin/avgadmsrv
/opt/avg/avgadmsrv/bin/avgadmsrv: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
Našel jsem, že to lze provézt několika způsoby (https://help.ubuntu.com/community/32bit_and_64bit), ale chtěl bych použít ten s nejmenšími zásahy do 64-bit systému. Jedná se celkem o miniatruní aplikaci, takže nechci kvůli ní např. virtualizovat celý systém.
Pro info přikládám hlášku po spuštění aplikace na 64-bit systému:
# /opt/avg/avgadmsrv/bin/avgadmsrv
-su: /opt/avg/avgadmsrv/bin/avgadmsrv: No such file or directory
Přesně tak, chyběl 32-bitový dynamický linker. Stačilo ho doinstalovat (apt-get install libc6-i386) a nyní to funguje bez problému.
# /opt/avg/avgadmsrv/bin/avgadmsrv -v 9.0.723
# ldd /opt/avg/avgadmsrv/bin/avgadmsrv linux-gate.so.1 => (0xf77c2000) libcrypt.so.1 => /lib32/libcrypt.so.1 (0xf7788000) libpthread.so.0 => /lib32/libpthread.so.0 (0xf776f000) libdl.so.2 => /lib32/libdl.so.2 (0xf776a000) librt.so.1 => /lib32/librt.so.1 (0xf7761000) libstdc++.so.6 => /opt/avg/avgadmsrv/lib/libstdc++.so.6 (0xf7681000) libm.so.6 => /lib32/libm.so.6 (0xf765b000) libgcc_s.so.1 => /opt/avg/avgadmsrv/lib/libgcc_s.so.1 (0xf764f000) libc.so.6 => /lib32/libc.so.6 (0xf74f4000) /lib/ld-linux.so.2 (0xf77c3000)
linux32
/linux64
/setarch
, ktore ti umoznuju vnutit architekturu spustanemu programu. Ale chybajuce libky samozrejme zistis pomocou ldd
. Tiez niekedy pouzivam strace
, ak treba riesit ine drobnosti.
libc6-i386
, urceny pre 64bit OS pre instalaciu 32-bitovych kniznic
libc6-i386 - GNU C Library: 32bit shared libraries for AMD64
No, ale mě to šlo .
Viz. příspěvek výše
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.