El teu blog de Linux en català

Com instal·lar fitxers deb de 32 bits a Ubuntu de 64 bits

Si el nostre ordinador és de 64 bits, tot i que hi podem instal·lar una distribució de 32 bits, aprofitarem millor el seu potencial instal·lant-n’hi una de 64 bits. L’únic problema que té això és que alguns programes (per sort, molt pocs) no distribueixen els fitxers «deb» preparats per a sistemes de 64 bits. Una solució és agafar el codi font del programa i compilar-lo, però aquest sistema a vegades és complicat. Aquí us mostrarem una altra solució, que intenta fer funcionar el propi programa de 32 bits en el nostre sistema de 64 bits. He de dir que això no sempre funciona, però la majoria de vegades que l’he utilitzat m’ha anat bé. A més, aquestes instruccions que escric són per a Ubuntu, però també han de funcionar en Debian i en distribucions derivades. Per a distribucions que no deriven de Debian, no ho tinc clar, però segurament es pot utilitzar un procediment anàleg. Bàsicament, el procediment que us presentaré es basa en els següents passos:

  1. Instal·lar les dependències del paquet.
  2. Instal·lar el paquet de 32 bits amb «dpkg», utilitzant el modificador «- -force-architecture».
  3. Intentar executar el programa des d’un terminal. Alguns cops ens funcionarà directament, en altres casos ens dirà que no troba algunes llibreries (que precisament hem instal·lat com a dependències).
  4. Descarregar-nos la versió de 32 bits de les llibreries que ens diu que no troba.
  5. Descomprimir aquests paquets, per extreure’n les llibreries pròpiament dites.
  6. Copiar a «/usr/lib32» les llibreries de 32 bits.

L’explicació més àmplia d’aquest procediment la faré en base al joc Energy Tycoon que us hem presentat avui mateix, tot i que com he comentat es pot utilitzar per a altres programes. Primer, ens descarreguem el fitxer «deb» del programa que ens volem instal·lar (en aquest cas, el «deb» de l’Energy Tycoon). Com que és un programa de 32 bits, i el nostre sistema és de 64 bits, utilitzem el «dpkg» amb el modificador «- -force-architecture»:

sudo dpkg -i --force-architecture energytycoon_release1_package.deb

Com que no tenim instal·lades les dependències del programa, el «dpkg» ens retorna els següents missatges d’error:

energytycoon depèn de libogremain-1.6.4; tot i així:
El paquet libogremain-1.6.4 no està instal·lat.
energytycoon depèn de libois-1.2.0; tot i així:
El paquet libois-1.2.0 no està instal·lat.
dpkg: s'ha produït un error en processar energytycoon (--install):

És a dir, el propi «dpkg» ens indica les dependències que té el programa. Així doncs, les instal·lem i tornem a intentar instal·lar l’Energy Tycoon:

sudo apt-get install libogremain-1.6.4 libois-1.2.0
sudo dpkg -i --force-architecture energytycoon_release1_package.deb

Ara sí, l’Energy Tycoon s’instal·la correctament. Amb molts programes de 32 bits, amb això en tindrem prou, i ja ens funcionarà. En aquest cas, però, el programa no ens funciona. Per veure l’error que dóna, l’executem des d’un terminal:

energytycoon

En aquest cas, obtenim el següent missatge d’error:

energytycoon: error while loading shared libraries: libOgreMain-1.6.4.so: cannot open shared object file: No such file or directory

És a dir, no ens troba la llibreria «libOgreMain-1.6.4.so». Quin és el motiu? Abans hem instal·lat el paquet «libogremain-1.6.4», que conté aquesta llibreria. Per què ara no la tenim? El motiu és que hem instal·lat la llibreria de 64 bits, però el programa és de 32 bits. La llibreria, tal i com s’instal·la, es desa a «/usr/lib» i «/usr/lib64» (que en realitat és un enllaç al directori anterior). Però els programes de 32 bits (com l’Energy Tycoon) van a buscar les llibreries al directori «/usr/lib32», i en aquest directori no hi tenim la llibreria. La solució és senzilla: Trobar la llibreria «libOgreMain-1.6.4.so» de 32 bits i deixar-la al directori «/usr/lib32». On podem obtenir aquesta llibreria? Doncs a l’apartat de llibreries de Packages d’Ubuntu. És a dir, a:

http://packages.ubuntu.com/maverick/libs/

Hi cerquem el paquet que ens interessa (en aquest cas, «libogremain-1.6.4») i anem a la seva pàgina. A la part inferior de la pàgina de «libogremain-1.6.4», hi trobarem els enllaços per descarregar-nos les versions de 64 bits (indicada com a «amd64») i de 32 bits («i386»). En aquest cas, ens interessa descarregar-nos aquesta darrera versió del paquet. Quan ens l’hàgim descarregat, amb l’explorador de fitxers (si utilitzeu Ubuntu, segurament serà el Nautilus) anem al directori on tinguem el paquet, hi fem clic amb el botó dret, i seleccionem «Extreu aquí». Això ens deixarà el directori «libogremain-1.6.4_1.6.4.dfsg1-1_i386». Hi entrem, i dins d’aquest anem al subdirectori «usr/lib». Aquí hi trobarem la llibreria «libOgreMain-1.6.4.so» que espera l’Energy Tycoon. Només cal que la copiem en el directori «/usr/lib32»:

sudo cp /xxx/libogremain-1.6.4_1.6.4.dfsg1-1_i386/usr/lib/libOgreMain-1.6.4.so /usr/lib32/

Ara, tornem a intentar executar l’Energy Tycoon des d’un terminal. Ens torna a donar el mateix error que ja havíem obtingut per a la llibreria «libOgreMain-1.6.4.so», però en aquest cas per a la «libOIS-1.2.0.so». Seguim el mateix procediment que abans (ens descarreguem la versió de 32 bits del paquet «libois-1.2.0» de http://packages.ubuntu.com/maverick/libs/, el descomprimim, i copiem la llibreria «libOIS-1.2.0.so» a «/usr/lib32»). Tornem a executar l’Energy Tycoon, etc. Si anem seguint aquest procediment, veurem que hem d’acabar copiant a «/usr/lib32» les llibreries «libOgreMain-1.6.4.so», «libOIS-1.2.0.so», «libzzip-0.so.13», «libfreeimage.so.3» i «libGLU.so.1».

Finalment, després de copiar aquestes llibreries a «/usr/lib32», podrem executar ja l’Energy Tycoon de 32 bits sense problemes en el nostre sistema de 64 bits.

Pantalla de l'Energy Tycoon

Pantalla de l'Energy Tycoon

Per al cas concret que hem utilitzat, l’Energy Tycoon, posem a la vostra disposició un zip amb totes les llibreries de 32 bits que necessita. Només cal que descomprimiu el fitxer i copieu tots els fitxers que conté a «/usr/lib32».

1 comment

  1. Reply

    Aquí expliquen com instaŀlar llibreries de 32 bits fent servir getlibs, que sembla que facilita força la feina. Ara bé, getlibs no es troba als repositoris.


    getlibs `which energytycoon`

Respon a Sergio Oller Cancel·la les respostes

Your email address will not be published.