Le ia32-libs
paquet 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?
Le ia32-libs
paquet 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?
Réponses:
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-libs
package. 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 wine
package). 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.
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 search
trouver le package contenant ce fichier. Dans l'exemple que j'ai donné, vous devez installer zlib1g:i386
.
package-name
par le nom réel. Utilisez ldd
pour comprendre, voir le deuxième commentaire ci-dessus.
Le ia32-libs
paquet 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.
Il y a 2 façons:
ia32-libs
plus du. (préféré)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-libs
et 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.
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.
J'ai lu que vous êtes censé installer le ia32-libs-multiarch
paquet à 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
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é.
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".
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
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