ubuntu amd64-en 32bites binaris futtatasa

Fórumok

Udv,

Ahogy a cimbe is szerepel, egy amd64es ubuntum van. Es most eloszor elojott egy olyan gondom, hogy egy regebbi jatek, mely csak binarisban van meg (es regisege miatt) csak 32 bites binarisban elerheto. Nincs forrasallomany hogy leforgassam semmi ilyesmi. Ha futtatni szeretnem ecceruen aztmondja hogy no such file or directory... Gondolom akkor csinal ilyet ha nem 64bites a bin. Mert ugye a file ottvan es letezik. Tehat a kerdesem az lenne nincs e vmi lehetoseg arra hogy "emulalva" a 32bites kornyezetet ezt a programot megis futasra birjam? Koszi a segitseget!

Hozzászólások

chroot azt hiszem, de lehet, hogy van valmi kesz megoldas is a distroban

--
status: no carrier

nem tudom hogy ubuntuba hogy van de suseba fel lehet tenni e 32 es libeket es annak segitsegevel futtatni 32 es dolgokat,
man apt-get nezzel szet ilyesmi utan, mitom en apt-get install valami@x86_64 -- igy mukodik az rpm kb
itt van valami ilyesmivel kapcsolatos dolog
edit: es itt

apt-get install debootstrap
32bites jail létrehozása

Ha jól emlékszem van egy csomag a 32 bites környezethez, talán linux32 a neve. Ha feltetted akkor így kell indítani a 32bites alkalmazásokat:
linux32 program_neve

Nezd meg esetleg strace-szel (vagy hogyishivjak linux-on) milyen hivasokkal indit.
Lehet nincs fent olyan library amit szeretne.

Tudtommal egyebkent egy 64 bites rendszer nem azt jelenti hogy nem lehet 32 bites binarist futtatni alatta.A linkelt/keresett library-kon mulik inkabb.

Ha pedig minden kotel szakad, agyuval verebre alapon tudom ajanlani az ingyenes vmware server-t. Abba aztan felreszelhetsz egy 32 bites OS-t.
Vagy qemu stb.

koszi a tippeket, jailt nem akarok csinalni, de ezt a linux32-t felraktam de ezzel is azt irja, nemertem mi lehet akkor a gond:

linux32 --3gb /root/ut-server/System/ucc-bin
Cannot execute /root/ut-server/System/ucc-bin: No such file or directory

pedig ugye ott a file ez is a neve, jogosultsag minden jo... Komolyan tippem sincs. Valakinek valami epito jellegu otlet?

Szerintem 64 bites Ubuntun eleve van 32 bites futtató környezet. Pl. ha megnézem ldd-vel, hogy az soffice.bin.real milyen könyvtárakat szed fel, hát a /usr/lib32-ből szedi a könyvtárakat. Vagyis hibrid a rendszer, mert az oo-t és még egynéhány dolgot nem hajlandók rendesen megcsinálni 64 bitesre.

Feltételezem, hogy más 32 bites programokat is lehet hasonlóan futtatni. Persze nem biztos, hogy a te programodnak ugyanazok az so-k kellenek, mint amik az /usr/lib32-ben vannak, ezesetben gyűjtögetni kell.

--
CCC3

Szerk:

Áthoztam egy 32-bites SuSE-n (viszonylag) statikusan linkelt programot 64-bites Ubuntura, és símán fut. Ezt adja az ldd:

linux-gate.so.1 => (0xffffe000)
libpthread.so.0 => /lib32/libpthread.so.0 (0x55581000)
libdl.so.2 => /lib32/libdl.so.2 (0x55594000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0x55597000)
libm.so.6 => /lib32/libm.so.6 (0x55672000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0x55694000)
libc.so.6 => /lib32/libc.so.6 (0x5569f000)
/lib/ld-linux.so.2 (0x55555000)

slamd64 alatt ezt úgy odották meg, hogy a 64-biteseknek van külön lib-je az (rettentő kreatívan /usr/lib64 ill opt/kde/lib64) lett --libprefix-el fordítva, így minden 32-bites slackware program futtatható slamd64-en is, feltéve ha felteszed a pretend-et. (nekem így megy a wine), csak ha csinálok 64-bites csomagot figyleni kell hogy vagy --libprefix64 meglegyen, vagy -L/urs/lib64 vagy -L/opt/kde/lib64 -el kell forgatni, de nem minden konfig file szereti, ez van. ha multilib az mindíg jó küzdelem.

Hehe egyszerubb volt a megoldas mint azt hittem vagy tanacsoltatok!

apt-get install libc6-i386 libc6-dev-i386

libc6-dev-i386 - GNU C Library: 32bit development libraries for AMD64
libc6-i386 - GNU C Library: 32bit shared libraries for AMD64

Es mar minden ment is!