Cosa è successo al pacchetto ia32-libs?


104

Il ia32-libspacchetto non è più presente nei repository Ubuntu 12.04 per un sistema a 64 bit. Sono disponibili pacchetti di sostituzione disponibili per il download?



2
+1, stava per fare esattamente la stessa domanda. Quindi ha davvero ottimi suggerimenti per le domande!
Ulidtko,

Risposte:


97

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-libspacchetto. 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 winepacchetto). 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.


17
Bene, come si suppone di trovare tutte le dipendenze e la prima installazione: i386 di quelle?
user117

10
@wingman Run 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 searchper trovare il pacchetto contenente quel file. Nell'esempio che ho fornito, è necessario installare zlib1g:i386.
Lekensteyn,

1
sono in un computer con Ubuntu 10.10. seguendo alcuni tutorial sullo sviluppo di Android devo installare ia32-libs. la tua risposta parla dell'11.10, ma per questo computer? cosa devo fare?
nkint

1
@nkint 10.10 non è più supportato. Se si desidera procedere, è necessario modificare le origini del pacchetto . In 10.10 è necessario installare ia32-libs. Ma anche allora non vi è alcuna garanzia che l'SDK Android funzioni con questo.
Lekensteyn,

1
@FelipeMicaroniLalli È necessario sostituire package-namecon il nome effettivo. Utilizzare lddper capire, vedere il secondo commento sopra.
Lekensteyn,

43

Ubuntu 13.10

Quello che è successo?

Il ia32-libspacchetto è 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.

Come posso installare il pacchetto x che dipende da ia32-libs

Ci sono 2 modi:

  1. Puoi riconfezionarlo manualmente in modo che non dipenda ia32-libspiù da. (preferito)
  2. Puoi installare ia32-libs dal repository Ubuntu 13.04 (Raring Ringtail) ( non è affatto preferito !, solo se il primo metodo non funziona )

1. Reimballare i vecchi pacchetti

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-libse 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.

2. Installare ia32-libs dal repository raring

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.


Che cos'è "FOS"? Ho provato: acronimi.thefreedictionary.com/FOS
Vista ellittica

1
@Elipticalview "Free e Open Source". Modificato in FLOSS (Free / Libre e software open source), che è più comune.
Galgalesh,

"Repackage vecchi pacchetti" funziona principalmente per Ubuntu 16.04 Xenial: è sufficiente aggiungere alcuni adattamenti ai nomi dei pacchetti, in genere aggiungendo lo spazio dei nomi ": i386" alla fine dei nomi dei pacchetti. Alcuni pacchetti hanno anche nomi diversi, come libbz2-1.0: i386
Christian Benke,

6

Ho letto che invece dovresti installare il ia32-libs-multiarchpacchetto. 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

Funziona anche con OS elementare luna
camelCaseD

4

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.


1

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".


2
Che cosa? Non esiste un caso d'uso specifico in questa domanda.
gertvdijk,

1
@gertvdijk: il pacchetto stesso rappresenta un caso d'uso limitato; per uno scopo più generale puoi multi-arch, ma per le persone che stavano usando questo specifico pacchetto in precedenza, sembra che sia stato sostituito con "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", che puoi installare senza dover usare multi-arch : copre gli stessi casi d'uso del pacchetto precedente. In sostanza, ho trovato inutili queste risposte, dal momento che multi-arch era eccessivo per il motivo dell'esistenza di ia32-libs, sono rimasto sorpreso dal fatto che non ci fosse una sostituzione drop-in più diretta e non sono rimasto deluso quando ho fatto ulteriori ricerche.
Saurik,

Questa è stata la risposta più semplice che ha risolto un problema simile per me. Anche se le librerie indicate non sembrano avere nulla a che fare con l'avvio di un binario generale, ha funzionato.
Per Knytt,

-2

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

4
Ottengo: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
foobaremade
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.