Qu'est-il arrivé au paquet ia32-libs?

104

Le ia32-libspaquet n'est plus présent dans les référentiels Ubuntu 12.04 pour un système 64 bits. Existe-t-il des packages de remplacement disponibles au téléchargement?

Ubuntuser
la source
2
+1, allait juste poser exactement la même question. SO a vraiment de bonnes suggestions de questions!
ulidtko

Réponses:

97

Le paquet ia32-libs était un hack pour obtenir des paquets 32 bits installés sur une installation 64 bits. Depuis Ubuntu version 11.10 (Oneiric), Multi Arch a été ajouté. L'un des objectifs est de supprimer le ia32-libspackage. Au lieu de cela, vous devez installer les bibliothèques 32 bits d'un paquet avec:

sudo apt-get install package-name:i386

Vous n'avez pas à vous soucier de cela pour les packages dans les référentiels standard (par exemple, le winepackage). Pour les logiciels externes, c'est un peu plus difficile, car vous devez rechercher les dépendances manuellement. Dans ce cas, utilisez votre moteur de recherche préféré pour rechercher les bibliothèques dont vous avez besoin.

Il semble que ia32-libs existe toujours, mais simplement comme un paquet pratique pour inclure des bibliothèques 32 bits communes. Ce paquet utilise maintenant Multi Arch pour installer correctement les paquets 32 bits.

Lekensteyn
la source
17
Eh bien, comment supposer de trouver toutes les dépendances et la première installation: i386 de celles-ci?
user117
10
@wingman Run ldd, en passant un chemin d'accès au binaire en argument. Si la sortie contient une ligne comme libz.so.1 => not found, alors vous devez trouver libz.so.1. Vous pouvez utiliser packages.ubuntu.com ou apt-file searchtrouver le package contenant ce fichier. Dans l'exemple que j'ai donné, vous devez installer zlib1g:i386.
Lekensteyn
1
Je suis dans un ordinateur avec Ubuntu 10.10. suite à un tutoriel sur le développement android, je dois installer le ia32-libs. votre réponse parle de 11.10, mais pour cet ordinateur? Ce que je dois faire?
nkint
1
@nkint 10.10 n'est plus pris en charge. Si vous souhaitez continuer, vous devez modifier les sources de votre package . Dans 10.10, vous devez installer ia32-libs. Mais même dans ce cas, rien ne garantit que le SDK Android fonctionne avec cela.
Lekensteyn
1
@FelipeMicaroniLalli Vous devez remplacer package-namepar le nom réel. Utilisez lddpour comprendre, voir le deuxième commentaire ci-dessus.
Lekensteyn
43

Ubuntu 13.10

Qu'est-il arrivé?

Le ia32-libspaquet a été complètement remplacé par lib32z1 lib32ncurses5 lib32bz2-1.0. Cela ne devrait pas poser de problème car ses fonctionnalités sont toujours présentes, mais uniquement dans d'autres packages. Cependant, nous ne vivons pas dans un monde idéal où tout le monde gère ses packages et où tous les logiciels sont en FLOSS. Certains packages dépendent donc encore de la librairie ia32.

Comment puis-je installer le paquet x qui dépend de ia32-libs

Il y a 2 façons:

  1. Vous pouvez le reconditionner manuellement pour qu'il ne dépende ia32-libsplus du. (préféré)
  2. Vous pouvez installer ia32-libs à partir du référentiel Ubuntu 13.04 (Raring Ringtail) ( pas du tout recommandé !, uniquement si la première méthode ne fonctionne pas )

1. Reconditionner les anciens paquets

Je vais utiliser citrix receiver comme exemple, mais vous pouvez utiliser cette méthode pour n’importe quel paquet .deb:

Commencez par télécharger le package .deb citrix receiver sur leur site web et créez un répertoire temporaire pour le piratage.

mkdir ica_temp

Extraire le paquet

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

Ouvrez le fichier dans gedit (ou votre éditeur préféré)

sudo -H gedit ica_temp/DEBIAN/control

Trouvez la ligne qui commence par Depends:.... enlever ia32-libset ajouterlib32z1 lib32ncurses5 lib32bz2-1.0

Reconstruire le paquet modifié

dpkg -b ica_temp icaclient-modified.deb

Et l'installer

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

L’installation du récepteur Citrix nécessite également du piratage. Vous pouvez trouver les instructions d'installation complètes sur le wiki Ubuntu

Vous pouvez le faire avec n'importe quel ancien paquet .deb qui dépend toujours de ia32-libs.

2. Installez ia32-libs à partir du référentiel raring

S'il vous plaît noter que c'est très mauvaise pratique d'installer de vieux paquets! Malheureusement, pour certains installateurs binaires, vous n’avez pas le choix.

Vous pouvez télécharger le paquet ia32-libs à partir du référentiel raring . Téléchargez-le et installez-le manuellement, les dépendances doivent être résolues.

Galgalesh
la source
Qu'est-ce que "FOS"? J'ai essayé: acronyms.thefreedictionary.com/FOS
Vue elliptique
1
@Elipticalview "Source libre et ouverte". Changé en FLOSS (logiciel libre / libre et open source), qui est plus commun.
Galgalesh
"Remballer les anciens paquets" fonctionne principalement pour Ubuntu 16.04 Xenial - il vous suffit d'ajouter quelques adaptations aux noms de paquets, généralement en ajoutant l'espace ": i386" à la fin des noms de paquets. Certains paquets ont aussi des noms différents, comme libbz2-1.0: i386
Christian Benke
6

J'ai lu que vous êtes censé installer le ia32-libs-multiarchpaquet à la place. Cependant cela n'a pas fonctionné pour moi et j'ai cette erreur

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

La solution qui a fonctionné pour moi a été d'installer les packages suivants:

sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
Ubarb
la source
Fonctionne pour OS élémentaire luna aussi
camelCaseD
4

Si vous obtenez cette erreur, essayez:

sudo apt-get update

Puis réessayez:

sudo apt-get install ia32-libs

Je viens de faire une nouvelle installation de 12.04, ce paquet est toujours disponible dans les référentiels. En fait, j'ai moi-même cette erreur avant d'exécuter la mise à jour. Ensuite, cela a bien fonctionné.

ASCPL
la source
1

Je crois que ce cas d'utilisation spécifique a été remplacé par les packages "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", ce qui est probablement une réponse plus spécifique et plus utile que de dire "vous pouvez utiliser plusieurs architectures".

saurik
la source
2
Quelle? Il n'y a pas de cas d'utilisation spécifique dans cette question.
gertvdijk
1
@gertvdijk: le paquet lui-même représente un cas d'utilisation limité; pour un usage plus général, vous pouvez multi-arch, mais pour les personnes qui utilisaient auparavant ce paquet spécifique, il semble avoir été remplacé par "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", que vous pouvez installer sans avoir à utiliser plusieurs-arch : qui couvre les mêmes cas d'utilisation que le paquet précédent. Pour l’essentiel, j’ai trouvé ces réponses inutiles, dans la mesure où la multiplicité d’archives était exagérée du fait que ia32-libs existait, étais surprise de constater qu’il n’y avait pas de remplacement immédiat, et je n’ai pas été déçue lorsque j’ai cherché plus avant.
saurik
Ce fut la réponse la plus simple qui résolut un problème similaire pour moi. Même si les bibliothèques indiquées ne semblent avoir rien à voir avec le démarrage d'un binaire général, cela a fonctionné.
Par Knytt
-2

J'ai installé les librairies ia32 comme ceci (je lance Ubuntu 13.04 Raring Ringtail sur une machine 64 bits):

Vérifier sa propre architecture:

$ dpkg --print-architecture

Vérifiez si une architecture étrangère est installée:

$ dpkg --print-foreign-architectures

Selon les résultats des deux commandes ci-dessus, les trois commandes suivantes pourraient fonctionner (le traitement a pris beaucoup de temps dans mon cas):

$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs
LivioM
la source
4
Je reçois: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