Иногда нужно запускать 32-bit приложения в 64-bit системе. Это приходится делать из-за неразрешимых зависимостей в пакетах.

Итак, поехали.

Ставим то что нам понадобится:

sudo apt-get install debootstrap schroot

Создаем директорию и конфигурационный файл для нашего chroot:

sudo mkdir /trusty_i386
sudo nano /etc/schroot/chroot.d/trusty_i386.conf

И записываем туда вот что:

[trusty_i386]
description=Ubuntu 14.04 Trusty for i386
directory=/trusty_i386
personality=linux32
root-users=mike
type=directory
users=alice,mike

Тут:
directory (раньше - location) - Директория где будут лежать файлы этого environment. Директория должна быть за пределами /home. tree.
По-умолчанию - /srv/chroot.

personality - Эта строка нужна, если хост-система 64-bit, а chroot-система - 32-bit. В противном случае можно отключить или закомментировать “#”.

root-users - Пользователи хост-системы, которые имеют права запускать schroot и получат root-доступ к chroot-окружению.

users - Пользователи хост-системы, которые имеют права запускать schroot и получат пользовательский доступ к chroot-окружению.

Выполнем установку нашей Ubuntu 14.04 Trusty 32-bit системы в указанную папку:

sudo debootstrap --variant=buildd --arch=i386 trusty /trusty_i386 http://archive.ubuntu.com/ubuntu/

Для других дистрибутивов просто меняем trusty на название дистра (например для Ubuntu 13.04 - precise)

Смотрим на список сконфигурированных chroot:

schroot  -l

Теперь запустим наше chroot-окружение и убедимсо, что там внутри 32-bit:

schroot -c trusty_i386 -u root
(trusty_i386)root@host-system:/home/mike# uname -a
Linux host-system 3.16.0-031600rc2-generic #201406220135 SMP Sun Jun 22 05:36:21 UTC 2014 i686 i686 i686 GNU/Linux

Затем в окружении chroot ставим компоненты системы:

(trusty_i386)root@host-system:/home/mike# apt-get install ubuntu-minimal

Для запуска GUI-приложений необходимо задать системную переменную DISPLAY (посмотреть ее на хост системе - echo $DISPLAY):

(trusty_i386)root@host-system:/home/mike#  DISPLAY=:0 ./yourapp