Il ia32-libs
pacchetto non è più presente nei repository Ubuntu 12.04 per un sistema a 64 bit. Sono disponibili pacchetti di sostituzione disponibili per il download?
Il ia32-libs
pacchetto non è più presente nei repository Ubuntu 12.04 per un sistema a 64 bit. Sono disponibili pacchetti di sostituzione disponibili per il download?
Risposte:
Il pacchetto ia32-libs era un hack per ottenere pacchetti a 32 bit installati su un'installazione a 64 bit. Dalla versione 11.10 di Ubuntu (Oneiric), è stato aggiunto Multi Arch . Uno degli obiettivi è la rimozione del ia32-libs
pacchetto. Invece, devi installare le librerie a 32 bit di un pacchetto con:
sudo apt-get install package-name:i386
Non devi preoccuparti di questo per i pacchetti nei repository standard (ad esempio il wine
pacchetto). Per il software esterno, è un po 'più difficile perché devi trovare le dipendenze manualmente. In tal caso, utilizza il tuo motore di ricerca preferito per trovare le librerie di cui hai bisogno.
Sembra che esistano ancora ia32-libs, ma semplicemente come pacchetto di convenienza per includere librerie comuni a 32 bit. Questo pacchetto ora utilizza Multi Arch per installare correttamente i pacchetti a 32 bit.
ldd
, passando un percorso al binario come argomento. Se l'output contiene una riga simile libz.so.1 => not found
, è necessario trovarla libz.so.1
. Puoi usare pacchetti.ubuntu.com o apt-file search
per trovare il pacchetto contenente quel file. Nell'esempio che ho fornito, è necessario installare zlib1g:i386
.
package-name
con il nome effettivo. Utilizzare ldd
per capire, vedere il secondo commento sopra.
Il ia32-libs
pacchetto è stato completamente sostituito da lib32z1 lib32ncurses5 lib32bz2-1.0
. Questo non dovrebbe essere un problema perché la sua funzionalità è ancora lì, solo in altri pacchetti. Tuttavia, non viviamo in un mondo ideale in cui tutti mantengono i loro pacchetti e tutto il software è FLOSS, quindi alcuni pacchetti dipendono ancora dalle librerie ia32.
Ci sono 2 modi:
ia32-libs
più da. (preferito)Userò il ricevitore citrix come esempio, ma puoi usare questo metodo per qualsiasi pacchetto .deb:
Innanzitutto, scarica il pacchetto .deb del ricevitore citrix dal loro sito Web e crea una directory temporanea per eseguire l'hacking.
mkdir ica_temp
Estrarre il pacchetto
dpkg-deb -x icaclient_13.0.0.256735_amd64.deb ica_temp
dpkg-deb --control icaclient_13.0.0.256735_amd64.deb ica_temp/DEBIAN
Apri il file in gedit (o nel tuo editor preferito)
sudo -H gedit ica_temp/DEBIAN/control
Trova la riga che inizia con Depends:...
. rimuovi ia32-libs
e aggiungilib32z1 lib32ncurses5 lib32bz2-1.0
Ricrea il pacchetto modificato
dpkg -b ica_temp icaclient-modified.deb
E installalo
sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f
L'installazione del ricevitore citrix richiede anche un po 'di hacking. Puoi trovare le istruzioni di installazione complete sul wiki di Ubuntu
Puoi farlo con qualsiasi vecchio pacchetto .deb che dipende ancora da ia32-libs.
Si noti che è una pessima pratica installare vecchi pacchetti! Purtroppo, per alcuni installatori binari, non hai altra scelta.
È possibile scaricare il pacchetto ia32-libs dal repository raring . Scaricalo e installalo manualmente, quindi le dipendenze dovrebbero essere risolte.
Ho letto che invece dovresti installare il ia32-libs-multiarch
pacchetto. Tuttavia non ha funzionato per me e ottengo questo errore
ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.
La soluzione che ha funzionato per me era installare i seguenti pacchetti:
sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
Se ricevi questo errore, prova:
sudo apt-get update
Quindi riprovare:
sudo apt-get install ia32-libs
Ho appena eseguito una nuova installazione di 12.04, quel pacchetto è ancora disponibile nei repository. In effetti, ho riscontrato questo errore da solo prima di eseguire l'aggiornamento. Successivamente, ha funzionato bene.
Credo che questo caso d'uso specifico sia stato sostituito con i pacchetti "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", che è probabilmente una risposta più specifica e utile che dire "puoi usare multi-arch".
Ho installato ia32-libs in questo modo (eseguo Ubuntu 13.04 Raring Ringtail su una macchina a 64 bit):
Controlla la propria architettura:
$ dpkg --print-architecture
Verifica se è installata un'architettura straniera:
$ dpkg --print-foreign-architectures
A seconda dei risultati dei due comandi precedenti, i seguenti tre comandi potrebbero funzionare (nel mio caso è stato necessario molto tempo):
$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs
Package ia32-libs is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: lib32z1 lib32ncurses5 lib32bz2-1.0