Confuso, vero? Lasciami spiegare un po '.
Perché?
- Il software a 32 bit funziona correttamente su un kernel a 64 bit con hardware a 64 bit.
- Alcuni software si affidano ancora a specifiche librerie a 32 bit. Questo non è carino, ma a volte non abbiamo il potere di cambiarlo.
- Il software a 32 bit deve essere disponibile per il sistema per soddisfare le dipendenze, quindi utilizza anche i repository a 32 bit.
Sono di inizio 2011. Cosa è successo?
Nelle versioni a 64 bit di Ubuntu precedenti all'11.10, alcune serie di librerie a 32 bit comuni erano raggruppate in un singolo ia32-libs
pacchetto rappresentato da APT / Dpkg come a 64 bit e in tale posizione nel repository. Se ti serve una singola libreria per un'applicazione, dipenderà dai 150+ MB di librerie a 32 bit 1 . Chiaramente, questo non è un bel design.
Architetture multiple?
La nuova idea era di introdurre le funzionalità cosiddette "Multiarch" in APT / Dpkg e negli strumenti che la circondano. Questo è stato presentato in diversi progetti su Launchpad, eccone uno . Oneiric (11.10) divenne la prima versione a supportare Multiarch.
Come funziona?
Puoi dire a Dpkg quali architetture è in grado di eseguire il tuo sistema. Nella mia installazione 12.04 a 64 bit, questo è qui:
$ cat /etc/dpkg/dpkg.cfg.d/multiarch
foreign-architecture i386
Apre l'intero mondo dei i386
pacchetti, con amd64
il valore predefinito ancora:
$ apt-cache show libqt4-core | grep -E "^(Filename|Architecture)"
Architecture: amd64
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_amd64.deb
$ apt-cache show libqt4-core:i386 | grep -E "^(Filename|Architecture)"
Architecture: i386
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_i386.deb
L'esempio sopra mostra che Multiarch consente ai manutentori di pacchetti di fare semplicemente dipendere i loro pacchetti libqt4-core:i386
per esempio e rende possibile installare qualsiasi libreria / pacchetto a 32 bit (e quindi installare qualsiasi pacchetto che dipende da qualsiasi libreria / pacchetto a 32 bit) , piuttosto che un set preselezionato.
ia32-libs
Compatibilità
Nel caso in cui sia stato utilizzato per installare il ia32-libs
pacchetto come pacchetto pratico per installare un set comune di librerie di base a 32 bit, è ora possibile utilizzare . Questo è un semplice metapacchetto che dipende dallo stesso (o almeno molto simile) set di librerie, ma verrà installato con la potenza di Multiarch.ia32-libs-multiarch
Ulteriori letture correlate
1 Per Lucid (10.04) la dimensione dell'installazione del ia32-libs
pacchetto è 155.812,0 kB.
dpkg --print-foreign-architectures
piuttosto che catturare/etc/dpkg/dpkg.cfg.d/multiarch
. Non esiste dopo il 12.04.