Сборка 32-bit Wine на 64-bit системе Ubuntu 12.04
Эта статья является приложением для двух других: Компиляция Wine Как патчить Wine
Компиляция Wine в среде Ubuntu не является таким уж необходимым занятием, Ubuntu - пакетная ОС и Wine лучше устанавливать из бинарных сборок, будь то стабильная версия или передовая - бета. Однако может наступить необходимость применения специализированной версии Wine или его пропатчивания для какой нибудь "ретивой" программы и игры, вот здесь нам и понадобиться компиляция и если в предыдущих версиях Ubuntu (8, 9, 10) с этим проблем не было, то на данный момент, к примеру на 64-bit Ubuntu 12.04, скомпилировать 32-bit Wine затруднительно, возникают ошибки типа: "configure: error: X 32-bit development files not found. Wine will be builtwithout X support, which probably isn't what you want. You will needto install 32-bit development packages of Xlib/Xfree86 at the very least.Use the --without-x option if you really want this".
Посмотрим как это можно обойти, создав изолированную, от остальной части ОС, область с базовой установкой 32-битной ОС Ubuntu и компиляцией Wine из под него.
1. Нужно установить пакеты dchroot и debootstrap, и создать изолированную директорию /var/chroot:
sudo apt-get install debootstrap sudo apt-get install dchroot sudo mkdir /var/chroot
Примечание:
/var - Это каталог для часто меняющихся данных.
2. Добавить в /etc/schroot/schroot.conf запись, изменив вашу версию Ubuntu и профиль:
[precise] description=Ubuntu Precise directory=/var/chroot users=your_username groups=sbuild root-groups=root
или
[lucid] description=Ubuntu Lucid directory=/var/chroot users=your_username groups=sbuild root-groups=root
3. Создадим базовую установку 32-битной Ubuntu 12.04 или 10.04 в изолированной среде:
sudo debootstrap --variant=buildd --arch i386 precise /var/chroot/ http://ubuntu.cs.utah.edu/ubuntu/
или
sudo debootstrap --variant=buildd --arch i386 lucid /var/chroot/ http://mirror.url.com/ubuntu/
Примечание
i386 - архитектура ОС для x86; amd64 - для архитектуры x86-64; precise (lucid) - кодовое имя нужного реализа Ubuntu; /var/chroot/ - место установки.
Это может занять какое то время, все таки устанавливается базовая версия Ubuntu, но не волнуйтесь, папка /chroot у меня заняла ~281Mb.
4. Для работы с репозиториями выполним:
sudo cp /etc/apt/sources.list /var/chroot/etc/apt/
5. Перейдем в созданную "карантинную" область:
sudo chroot /var/chroot
6. Установим, в этой директории, зависимости для сборки Wine:
# apt-get update # apt-get install libfontconfig-dev libfreetype6-dev libglu-dev libgphoto2-2-dev libgsm1-dev libice-dev libjpeg-dev libldap-dev libmpg123-dev
libncurses5-dev libopenal-dev libpng-dev libsm-dev libssl-dev libusb-dev libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxi-dev
libxinerama-dev libxml2-dev libxrandr-dev libxrender-dev libxslt-dev libxt-dev libxxf86vm-dev oss4-dev # apt-get build-dep wine
7. Для сборки пакетов скомпилированного Wine установите утилиту Checkinstall:
# apt-get install checkinstall
8. Копируем, к примеру в папку /var/chroot/usr/source, наши исходники и выполняем компиляцию.
Пример. Компиляции Wine-1.3.24 с патчем xlivelesswine.patch, для игры Batman Arkham Asylum, где папка с исходниками и патчем находится в директории /var/chroot /usr/source/wine-1.3.24:
$ sudo chroot /var/chroot # cd /usr/source/wine-1.3.24 # patch -p1 < xlivelesswine.patch # autoconf # ./configure --prefix=/usr # make -j4 (-jn - для многоядерных процессоров, где n-кол. ядер) # checkinstall -D --install=no
Будет собран Deb-пакет с пропатченным Wine, которы можно будет применить в основной операционной системе.