Portál AbcLinuxu, 12. května 2025 11:49

Dotaz: Spuštění 32-bit aplikace na 64-bit systému

11.10.2010 12:53 luk407 | skóre: 6
Spuštění 32-bit aplikace na 64-bit systému
Přečteno: 4033×
Odpovědět | Admin

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
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.10.2010 12:58 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejlepší způsob, jak ji spustit, je prostě ji spustit. Pokud potřebuje nějaké 32bitové knihovny, je potřeba je doinstalovat (balíčky mívají na konci jména -ia32). Jaké knihovny potřebuje, to zjistíš například pomocí ldd /cesta/k/binarce

Z toho, co jsi napsal (No such file or directory), to nicméně spíš vypadá, že tam ta aplikace chybí nebo chybí nějaký její kus.
Quando omni flunkus moritati
11.10.2010 17:20 l4m4
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
Takové záhadné No such file or directory se IIRC objeví, když chybí příslušný (tj. zde 32bitový) dynamický linker.
11.10.2010 23:35 luk407 | skóre: 6
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému

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)

Diky moc i Jupimu za tip na příslušný balíček.
11.10.2010 13:32 Jupi | skóre: 19
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
Odpovědět | | Sbalit | Link | Blokovat | Admin
Debian/Ubuntu su k dispozicii prikazy 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.
11.10.2010 14:19 Jupi | skóre: 19
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
Este som zabudol, na Debian existuje balik libc6-i386, urceny pre 64bit OS pre instalaciu 32-bitovych kniznic
libc6-i386 - GNU C Library: 32bit shared libraries for AMD64
Jardík avatar 12.10.2010 00:44 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejde to. Pokud máš 64bit systém, tak jistě nemá podporu spouštění 32bit aplikací, jinak by to byl 64/32bit hybrid systém.
Věřím v jednoho Boha.
Migi avatar 12.10.2010 11:47 Migi | skóre: 59 | blog: Mig_Alley
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
kdo by to byl řek, že :-)
12.10.2010 14:20 luk407 | skóre: 6
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému

No, ale mě to šlo :-).

Viz. příspěvek výše

Jardík avatar 12.10.2010 19:53 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
Takže si lhal a nemáš 64bit systém ...
Věřím v jednoho Boha.
13.10.2010 09:36 l4m4
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
Pokud má systém, ze kterého když smaže nějaké věci, bude mít podle tvé definice 64bitový systém, tak má 64bitový systém i teď. Akorát v něm má nějaký bordel navíc.
Jardík avatar 13.10.2010 15:19 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
64bit systém bude mít po vyhození podpory 32bit šmejďáren z kernelu, smazání knihoven samo o sobě nepomůže, stále by mohl spouštět staticky linkované binárky.
Věřím v jednoho Boha.
Migi avatar 12.10.2010 20:12 Migi | skóre: 59 | blog: Mig_Alley
Rozbalit Rozbalit vše Re: Spuštění 32-bit aplikace na 64-bit systému
ono to jde každemu. Tady jardík jen ve vší moudrosti nepovažuje 64bitovy system s 32bitovymi knihovnami(s podporou spousteni 32bitovych aplikaci) za 64bitový system. My ostatní tomu říkáme slovíčkaření, jardík tomu říká globálně nejvetší problém 21 století.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.