Was ist mit dem Paket ia32-libs passiert?


Antworten:


97

Das Paket ia32-libs war ein Hack, um 32-Bit-Pakete auf einer 64-Bit-Installation zu installieren. Seit Ubuntu Version 11.10 (Oneiric) wurde Multi Arch hinzugefügt. Eines der Ziele ist das Entfernen des ia32-libsPakets. Stattdessen müssen Sie die 32-Bit-Bibliotheken eines Pakets installieren mit:

sudo apt-get install package-name:i386

Bei Paketen in den Standard-Repositorys (z wine. B. dem Paket) müssen Sie sich darüber keine Gedanken machen . Bei externer Software ist dies etwas schwieriger, da die Abhängigkeiten manuell ermittelt werden müssen. Verwenden Sie in diesem Fall Ihre bevorzugte Suchmaschine, um die von Ihnen benötigten Bibliotheken zu finden.

Es scheint, dass ia32-libs immer noch existieren, aber nur als Hilfspaket, um gängige 32-Bit-Bibliotheken einzuschließen. Dieses Paket verwendet jetzt Multi Arch, um die 32-Bit-Pakete korrekt zu installieren.


17
Nun, wie soll man all die Abhängigkeiten finden und zuerst installieren: i386 von denen?
user117

10
@wingman Run ldd, übergibt einen Pfad zur Binärdatei als Argument. Wenn die Ausgabe eine Zeile wie enthält libz.so.1 => not found, müssen Sie finden libz.so.1. Sie können packages.ubuntu.com verwenden oder apt-file searchdas Paket suchen, das diese Datei enthält. In dem Beispiel, das ich gegeben habe, müssen Sie installieren zlib1g:i386.
Lekensteyn

1
Ich bin in einem Computer mit Ubuntu 10.10. Nach einem Tutorial zur Android-Entwicklung muss ich die ia32-libs installieren. Ihre Antwort spricht von 11.10, aber für diesen Computer? was ich machen muss?
nkint

1
@nkint 10.10 wird nicht mehr unterstützt. Wenn Sie fortfahren möchten, müssen Sie die Paketquellen ändern . In 10.10 müssen Sie ia32-libs installieren. Aber auch dann gibt es keine Garantie, dass das Android SDK damit funktioniert.
Lekensteyn

1
@FelipeMicaroniLalli Sie müssen package-namedurch den tatsächlichen Namen ersetzen . Verwenden Sie, lddum herauszufinden, siehe den zweiten Kommentar oben.
Lekensteyn

43

Ubuntu 13.10

Was ist passiert?

Das ia32-libsPaket wurde komplett durch ersetzt lib32z1 lib32ncurses5 lib32bz2-1.0. Dies sollte kein Problem sein, da die Funktionalität nur in anderen Paketen noch vorhanden ist. Wir leben jedoch nicht in einer idealen Welt, in der alle ihre Pakete warten und die gesamte Software FLOSS ist. Einige Pakete sind daher immer noch von der ia32-libs abhängig.

Wie kann ich das Paket x installieren, das von ia32-libs abhängt?

Es gibt zwei Möglichkeiten:

  1. Sie können es manuell neu verpacken, so dass es nicht mehr von dem abhängt ia32-libs. (bevorzugt)
  2. Sie können ia32-libs aus dem Ubuntu 13.04-Repository (Raring Ringtail) installieren (überhaupt nicht bevorzugt !, nur wenn die erste Methode nicht funktioniert ).

1. Packen Sie alte Pakete neu

Ich werde den Citrix-Empfänger als Beispiel verwenden, aber Sie können diese Methode für jedes DEB-Paket verwenden:

Laden Sie zuerst das .deb-Paket für citrix receiver von der Website herunter und führen Sie das Hacken in einem temporären Verzeichnis durch.

mkdir ica_temp

Packen Sie das Paket aus

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

Öffne die Datei in gedit (oder deinem Lieblingseditor)

sudo -H gedit ica_temp/DEBIAN/control

Suchen Sie die Zeile, die mit beginnt Depends:.... entfernen ia32-libsund hinzufügenlib32z1 lib32ncurses5 lib32bz2-1.0

Erstellen Sie das geänderte Paket neu

dpkg -b ica_temp icaclient-modified.deb

Und installiere es

sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f

Die Installation des Citrix-Empfängers erfordert auch einige Hacking. Die vollständigen Installationsanweisungen finden Sie im Ubuntu-Wiki

Sie können dies mit jedem alten .deb-Paket tun, das noch von ia32-libs abhängt.

2. Installieren Sie ia32-libs aus dem RARING-Repository

Bitte beachten Sie, dass es sehr schlecht ist, alte Pakete zu installieren! Leider haben Sie für einige Binärinstallateure keine andere Wahl.

Sie können das Paket ia32-libs aus dem Raring-Repository herunterladen . Laden Sie es herunter und installieren Sie es manuell. Anschließend sollten die Abhängigkeiten aufgelöst werden.


Was ist "FOS"? Ich habe versucht: acronyms.thefreedictionary.com/FOS
Elliptical view

1
@Elipticalview "Kostenlos und Open Source". Es wurde in FLOSS (Free / Libre und Open Source Software) geändert, was häufiger vorkommt.
Galgalesh

"Alte Pakete neu packen" funktioniert hauptsächlich für Ubuntu 16.04 Xenial - Sie müssen nur ein paar Anpassungen an den Paketnamen vornehmen und normalerweise den ": i386" -Namensraum am Ende der Paketnamen anfügen. Einige der Pakete haben auch andere Namen, wie zB libbz2-1.0: i386
Christian Benke

6

Ich habe gelesen, dass Sie das ia32-libs-multiarchPaket stattdessen installieren sollen . Allerdings hat es bei mir nicht geklappt und ich bekomme diesen Fehler

ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.

Die Lösung, die für mich funktionierte, bestand darin, die folgenden Pakete zu installieren:

sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386

Funktioniert auch für das
grundlegende

4

Wenn Sie diese Fehlermeldung erhalten, versuchen Sie Folgendes:

sudo apt-get update

Dann versuchen Sie es noch einmal:

sudo apt-get install ia32-libs

Ich habe gerade eine Neuinstallation von 12.04 durchgeführt, dieses Paket ist noch in den Repositories verfügbar. Tatsächlich habe ich diesen Fehler selbst erhalten, bevor ich update ausgeführt habe. Danach hat es gut funktioniert.


1

Ich glaube, dieser spezielle Anwendungsfall wurde durch die Pakete "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2" ersetzt. Dies ist wahrscheinlich eine spezifischere und nützlichere Antwort als "Sie können Multi-Arch verwenden".


2
Was? In dieser Frage gibt es keinen speziellen Anwendungsfall.
Gertvdijk

1
@gertvdijk: Das Paket selbst stellt einen eingeschränkten Anwendungsfall dar; Für einen allgemeineren Zweck können Sie Multi-Arch verwenden, aber für Benutzer, die dieses eine bestimmte Paket zuvor verwendet haben, scheint es durch "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2" ersetzt worden zu sein, das Sie installieren können, ohne Multi-Arch verwenden zu müssen : das deckt die gleichen Anwendungsfälle ab wie das vorherige Paket. Im Wesentlichen fand ich diese Antworten nicht hilfreich, da Multi-Arch übertrieben war, weil ia32-libs existierten, ich war überrascht, dass es keinen direkteren Ersatz gab, und ich war nicht enttäuscht, als ich dies weiter untersuchte.
Saurik

Dies war die einfachste Antwort, die ein ähnliches Problem für mich gelöst hat. Obwohl die angegebenen Bibliotheken nichts mit dem Starten einer allgemeinen Binärdatei zu tun zu haben scheinen, hat es funktioniert.
Per Knytt

-2

Ich habe die ia32-libs folgendermaßen installiert (ich starte Ubuntu 13.04 Raring Ringtail auf einem 64-Bit-Rechner):

Eigene Architektur prüfen:

$ dpkg --print-architecture

Überprüfen Sie, ob eine fremde Architektur installiert ist:

$ dpkg --print-foreign-architectures

Abhängig von den Ergebnissen der beiden obigen Befehle funktionieren möglicherweise die folgenden drei Befehle (in meinem Fall hat die Verarbeitung viel Zeit in Anspruch genommen):

$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs

4
Ich bekomme: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
Foobarbecue
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.