Wiki d'Imatgedart

Com instal·lar aplicacions de 32 bits en sistemes de 64 bits

És habitual que vulguem utilitzar alguna aplicació de 32 bits i que tinguem dificultats pel fet que el nostre sistema sigui de 64 bits. Normalment ens trobem en aquesta circumstància bé perquè l'aplicació en si només pot funcionar sota arquitectures de 32 bits o perquè els paquets proveïts a Internet només estan compilats per a aquesta arquitectura, i en aquest cas l'alternativa és compilar-los manualment, cosa que en alguns casos no és exageradament difícil però en d'altres, a causa de les dependències, es pot convertir en un maldecap important.

Per a resoldre aquesta qüestió comptem fonamentalment amb tres eines, les ia32-libs i getlibs, i finalment amb l'opció –force-architecture de l'eina dpkg.

  • Les llibreries ia32 serveixen per preparar un sistema de 64 bits a fi que pugui executar aplicacions de 32.
  • Getlibs és un programa que ens permet descarregar particularment les llibreries de 32 bits que vulguem.
  • L'opció –force-architecture de l'eina dpkg serveix per forçar la instal·lació d'un paquet preparat per a una arquitectura diferent a la del sistema on es vol instal·lar.

La diferència entre les dues prmeres solucions és el fet que una cosa és que el nostre sistema pugui executar aplicacions de 32 bits, i això ho resolem amb ia32. Però que el nostre sistema pugui fer això no implica que tingui instal·lades les llibreries de 32 bits que una aplicació determinada pot necessitar, i això és el que ens resol getlibs.

Pel que fa a l'opció –force-architecture de nou és convenient que no confonguem els conceptes. Aquesta opció l'únic que fa és forçar una instal·lació en una arquitectura diferent a aquella per a la qual està preparada el paquet. No implica, per tant, que un cop instal·lat el paquet aquest es pugui executar al nostre sistema en particular (això és el que ens resol ia32-libs) ni que tingui les dependències de llibreries resoltes per a poder-se executar, tampoc (que és el que ens resol getlibs). Aquesta opció s'utilitza així:

 # dpkg -i --force-architecture /ruta/a/nomdelpaquet.deb

L'última cosa sobre –force-architecture: think before you tipe. Pot ser que el paquet estigui disponible en la teva arquitectura i que no ho hagis mirat prou bé, també hi ha la possibilitat de compilar-lo manualment, etc.

Cal dir també que no sempre cal recórrer a totes les solucions juntes. El sentit comú i una mica de recerca a Internet us poden donar alguna pista més sobre quan cal utilitzar cada una.

Instal·lar les ia32-libs

és quelcom tan senzill com fer

 # apt-get install ia32-libs
Instal·lació i ús getlibs

Podeu descarregar Getlibs des d'aquí. Es tracta d'un únic paquet que ens serveix tant per Ubuntu com per Debian així com les seves diverses edicions. Podeu instal·lar aquest paquet amb les eines habituals com

 dpkg -i /ruta/a/getlibs-all.deb

o bé amb l'eina instal·ladora Gdeb. No entraré aquí en aquest aspecte.

L'ús de getlibs no és difícil però tampoc del tot trivial i cal anar-li agafant el truc. És una eina simple i per tant tampoc ens dóna massa informació sobre el que fa, tot i que generalment és suficient. Per mirar si tenim èxit, és convenient anar repassant els continguts dels directoris

 /usr/lib
 /usr/lib32
 /usr/lib64

per comprovar que s'instal·la a lib32 allò que necessitem.

Generalment utilitzarem getlibs per descarregar les llibreries de l'absència de les quals un programa es queixi en ser arrencat. Per veure això, evidentment i normalment, cal engegar el programa a través del terminal. Si busquem aquella llibreria utilitzant Synaptic veurem que molt probablement sí que la tenim instal·lada, però evidentment en la versió nativa del nostre sistema, de 64 bits. Aquí és on entra getlibs i les seves opcions, que apareixen si cridem el programa sense arguments:

 getlibs /path/to/binary
 getlibs -l i386librarytoinstall.so
 getlibs -p i386packagename
 getlibs -w www.website.com/i386package.deb
 getlibs -i /home/root/i386package.deb
  • la primera opció serveix per descarregar les llibreries de 32 que són necessàries per al programa (el binary) del qual especifiquem la ruta
  • la segona opció serveix per descarregar les llibreries de l'absència de les quals es queixa el programa en arrencar.
  • la tercera, per descarregar les llibreries incloses dins el nom del paquet que especifiquem
  • i les dues darreres, per instal·lar des de la web o localment el paquet que conté les llibreries absents

En tots els casos és útil que tingueu controlats quins repositoris teniu activats i quins no, ja que d'això també dependrà que getlibs trobi el paquet en qüestió. En alguns casos, getlibs us dirà que no pot trobar el paquet a una determinada url. Copieu i enganxeu aquesta URL per comprovar que el paquet no hagi fet un canvi de nom del qual getlibs no està al corrent.

En altres casos, us pot caldre jugar amb el nom de la llibreria per tal que getlibs pugui descarregar-la, encara que sigui lleugerament diferent d'aquella de què es queixava el programa. En aquests casos, i només a vegades, crear enllaços simbòlics amb el nom de la llibreria absent cap a la descarregada per getlibs pot resoldre el problema, però no sempre.

Sort!!!

Fonts

Ei, gràcies per ser a aquesta pàgina.
Potser has notat que ha canviat una mica.
Estic "en ello".

Roy Tanck's Flickr Widget requires Flash Player 9 or better.

Get this widget at roytanck.com
tutorials/gnulinux/debian/32bits_en64bits.txt · Darrera modificació: 2010/12/02 06:33 per glaurung -
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki

Aquests continguts es publiquen amb llicència CC BY-SA, sempre que no s'especifiqui el contrari en un context més específic.