web-dev-qa-db-fra.com

Comment puis-je obtenir un paquet 32 ​​bits sur une installation 64 bits?

J'essayais de faire fonctionner un jeu. Mais Lucid Lynx sur AMD64 est en cours d’exécution alors que le binaire du jeu était de 32 bits (aucune version 64 bits disponible et personne n’était prêt à recompiler). Il ne manquait pas libfsml-windows1.5 pour s'exécuter, et apt-l'obtenir a échoué. Je dois donc télécharger manuellement les packages i386 et les forcer à les installer. (Non, ne fait pas partie de ia32libs.)

Je me demande maintenant s'il existe un moyen automatisé de télécharger des packages x86 au moins sur une installation 64 bits. apt-get -o apt::architecture=i386 n'a pas fonctionné. (Si vous changez de mode d'architecture, le paquet ne sera pas trouvé ni les dépendances manquantes pour les paquets existants.)

Existe-t-il un autre outil pour automatiser cela? Peut-être un qui télécharge les paquets i386 et déplace-t-il les bibliothèques contenues dans/usr/lib32/implicitement?

32
mario

Solution pour Ubuntu 11.10 ou ultérieure

Depuis Ubuntu 11.10, il n’est plus nécessaire d’utiliser getlibs ou d’autres solutions de contournement. Le système de paquets sur les systèmes 64 bits est maintenant capable de gérer des bibliothèques 32 bits en parallèle avec les bibliothèques 64 bits. Vous pouvez même installer facilement des applications complètes avec toutes leurs dépendances maintenant!

Ajoutez simplement :i386 au nom du paquet que vous souhaitez installer.

Par exemple, j'avais besoin d'une version 32 bits de Java 7 et je pouvais l'installer (avec toutes ses dépendances) simplement en exécutant:

Sudo apt-get install openjdk-7-jdk:i386
35
Chriki

Oui, avoir un environnement chrooté est la solution, cela permet même d’avoir côte à côte les versions précédentes de votre Ubuntu existant.

C'est simple à faire.

Sudo apt-get install debootstrap schroot

Éditez /etc/schroot/schroot.conf et ajoutez une nouvelle configuration schroot:

[lucid32]
type=directory
description=Ubuntu Lucid 32bit
directory=/chroot/lucid32
users=your-user
root-groups=root
personality=linux32

Puis installez l'environnement chroot:

Sudo debootstrap --variant=buildd --Arch i386 lucid /chroot/lucid32 http://nl.archive.ubuntu.com/ubuntu

Puis entrez le chroot avec:

schroot -c lucid32

Ou pour les tâches racine, par exemple: exécutez apt-get tâches:

Sudo schroot -c lucid32
14
Paulo Lopes

Que je suis bête. C'est en effet un problème résolu.

getlibs

Comme son nom l'indique, il ne peut installer que des bibliothèques, pas des applications. Mais cela fonctionne exceptionnellement bien pour verrouiller des bibliothèques 32 bits sur un système x86-64. Il automatise le téléchargement et l’installation dans/usr/lib32 (supposons qu’il effectue la substitution de chemin en interne.)

ppa: jcollins/jaminppa
https://launchpad.net/~jcollins/+archive/jaminppa/+packages

Certains documents (getlibs ne semble pas avoir de page d’accueil actuelle):
http://ubuntuforums.org/showthread.php?t=47479
https://help.ubuntu.com/community/32bit_and_64bit
http://www.dedoimedo.com/computers/ubuntu-utils.html
http://wiki.ubuntuusers.de/getlibs (en allemand)

8
mario

Forcer l'installation des bibliothèques 32 bits sur un système 64 bits va casser votre système. Vous devez configurer un chroot 32 bits. Voir http://ubuntuforums.org/showthread.php?t=24575 .

2
psusi