Как мне apt-get 32-разрядный пакет при 64-разрядной установке?

Я пытался заставить игру работать. Но у меня есть Lucid Lynx на amd64, работающий, когда двоичный файл игры был 32-разрядным (64-разрядная версия недоступна, и никто не был в настроении для перекомпиляции). Ему не хватало libfsml-windows1.5 для запуска, и apt-get не удалось. Поэтому мне приходится вручную загружать пакеты i386 и принудительно устанавливать их. (Нет, не часть ia32libs.)

Теперь мне интересно, существует ли автоматизированный способ загрузки пакетов x86, по крайней мере, при 64-разрядной установке. apt-get -o apt::architecture=i386 не сработало. (Если вы переключаете режим архитектуры, он не находит пакет или предполагает отсутствие зависимостей для существующих пакетов повсюду.)

Есть ли другой инструмент для автоматизации этого? Возможно, тот, который загружает пакеты i386 и неявно перемещает содержащиеся в них библиотеки в /usr/lib32/?

Решение для Ubuntu 11.10 или более поздней версии

Начиная с Ubuntu 11.10, больше не должно быть необходимости использовать getlibs или какой-нибудь другой обходной путь. Система пакетов в 64-разрядных системах теперь может управлять 32-разрядными библиотеками параллельно с 64-разрядными библиотеками. Теперь вы даже можете легко устанавливать готовые приложения со всеми их зависимостями!

Просто добавьте :i386 к имени пакета, который вы хотели бы установить.

Например, мне нужна была 32-разрядная версия Java 7, и я мог установить ее (вместе со всеми ее зависимостями), просто запустив:

sudo apt-get install openjdk-7-jdk:i386

Да, наличие среды chroot - это правильный путь, она позволяет даже использовать предыдущие версии рядом с вашей существующей Ubuntu.

Сделать это очень просто;

sudo apt-get install debootstrap schroot

Редактировать /etc/schroot/schroot.conf и добавьте новую конфигурацию schroot:

[lucid32]type=directorydescription=Ubuntu Lucid 32bitdirectory=/chroot/lucid32users=your-userroot-groups=rootpersonality=linux32

Затем установите среду chroot:

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

Затем введите chroot с помощью:

schroot -c lucid32

Или для корневых задач, например: выполнить apt-get задачи:

sudo schroot -c lucid32

Глупый я. Это действительно решенная проблема.

getlibs

Как следует из названия, он может устанавливать только библиотеки, а не приложения. Но он исключительно хорошо работает для подключения 32-разрядных библиотек к системе x86-64. Он автоматизирует загрузку и установку в /usr /lib32 (давайте предположим, что он выполняет внутреннюю замену пути).

ppa:jcollins/jaminppa
https://launchpad.net /~jcollins/+архив/jaminppa/+пакеты

Некоторая документация (похоже, у getlibs нет текущей домашней страницы):
http://ubuntuforums.org/showthread.php?t=474790
https://help.ubuntu.com/community/32bit_and_64bit
http://www.dedoimedo.com/computers/ubuntu-utils.html
http://wiki.ubuntuusers.de/getlibs (на немецком языке)

Принудительная установка 32-разрядных библиотек на 64-разрядную систему приведет к поломке вашей системы. Вам нужно настроить 32-битный chroot. Видеть http://ubuntuforums.org/showthread.php?t=24575.

Я мог думать только о ia32-libs, используя apt-get install.

Вероятно, нет (учитывая, сколько ему лет - до того, как понадобились 12-04 ia32-libs)