Kako zagnat 32bitno aplikacijo na 64bitnem OS – Linux?

Načinov kako izvedet kateri procesor uporabljamo na VM-u, strežniku, prenosniku je več.

Najenostavneje to izvemo z ukazom:

lscpu | grep Architecture

ki nam nato postreže z več odgovori:

Architecture: armv7l
Architecture: aarch64
Architecture: x86_64

Načinov kako 32bitno aplikacijo pognat na 64bitnem Intel sistemu je več:

– imeti uradno podporo ti. multiarch
– uporabiti Linux-kernel tehnike, kot so chroot, Docker, OpenVZ, LXC
– uporaba virtualk

Multiarch sistem je enostaven, edina težava je v tem, da boste s tem na svoj sistem namestili en kup “balasta”. Če ogromno krat uporabljate 32bitne programe je to tudi najboljša rešitev. Na Debian / Ubuntu distribucijah, to naredimo enostavno za ukazom:

# dpkg –add-architecture i386
# apt update
# apt install -y ia32-libs
# apt install ime_paketa:i386

Pred dnevi, ko sem sodeloval na CTF, sem potreboval 32bitno arhitekturo, da sem zagnal en ukaz, ki je bil pisan za 32bitno arhitekturo, ker nisem želel na sistem namesčat ogromno knjižnic in programov, sem se odločil za chroot sistem, ki je na Debianu izredno enostaven. Osnovna ideja te rešitve, je da v določen imenik namestimo vse potrebno in popolnoma neodvisno od našega sitema (sandbox). Da to dosežemo najprej namestimo par dodatnih programov:

# apt update
# apt install -y schroot debootstrap dbus

# mkdir /chroot
# debootstrap –arch=i386 stable /chroot http://deb.debian.org/debian/

Po namestitvi okolja, naredimo še konfiguracijo za to okolje:

# vim /etc/schroot/chroot.d/debianv01
[debianv01]
description=32bitno okolje Debian
aliases=debianv01
type=directory
directory=/chroot
users=root
root-groups=root
profile=desktop
personality=linux
preserve-environment=true

in se v na novo ustvarjeno okolje prijavimo:

# schroot -c test
(debianv01)root@localhost:~#

V to okolje lahko enostavno namestimo programe 32bitnega okolja, ki tečejo popolnoma neodvisno od našega produkcijskega okolja.

Dodaj odgovor

Vaš e-naslov ne bo objavljen. * označuje zahtevana polja