Сборка Wine из исходников в Debian
Впервые опубликовано 2008-01-15.
Получение свежих исходников
Для работы с репозиторием Wine вам потребуется программа git
(в Debian пакет с нею называется git-core
).
Чтобы получить текущую версию исходного кода Wine, необходимо выполнить:
git clone git://source.winehq.org/git/wine.git wine
Будет создан каталог wine/
, внутри которого Git настроит локальный репозиторий и скопирует в него с репозитория Wine самую свежую на текущий момент копию дерева исходных кодов.
Для обновления ранее созданного локального репозитория, нужно перейти в каталог с ним и выполнить:
git fetch && git rebase origin
Если вы изменяли файлы в локальной копии исходных кодов, но потом захотели удалить все изменения и вернуться обратно к “чистой” официальной версии, можно сделать это следующей командой:
git reset --hard origin
Подробности по работе с git описаны на сайте Wine, либо в man git
.
Применение патчей
Часто, причиной сборки программ из исходных кодов является желание получить версию программы, в которой включены некие неофициальные изменения (патчи). Предположим, они находятся одним уровнем выше каталога с локальным репозиторием Git. Тогда, находясь внутри этого каталога, для их применения следует выполнить:
patch -p1 -N < ../SomePatchFile.patch
Подробности см. в man patch
.
Установка зависимостей
Если у вас в /etc/apt/sources.lst
прописаны репозитории исходных кодов (deb-src
), для установки всех необходимых для сборки Wine библиотек можно выполнить:
apt-get update apt-get build-dep wine
Если же репозитории исходных кодов вы не используете, установить библиотеки поможет примерно такая команда:
sudo apt-get install \ gcc-4.4 gcc-4.4-multilib make prelink flex bison \ libx11-dev libxinerama-dev libxcomposite-dev libxrandr-dev libxrender-dev libxxf86vm-dev libxi-dev libxcursor-dev \ libgl1-mesa-dev libglu1-mesa-dev \ fontforge fontconfig libfontconfig-dev \ libxml2-dev libxslt-dev \ libgphoto2-dev libpng-dev libjpeg62-dev \ libsane-dev libcupsys2-dev \ libldap-dev libcapi20-dev libssl-dev liblcms-dev lib32v4l-dev lib32z1-dev ia32-libs-dev
Попробуйте выполнить скрипт ./configure
в каталоге с исходниками. В конце выполнения, скрипт может вывести перечень отсутствующих библиотек1) - доустановите их, если соответствующие возможности Wine вам нужны.
Сборка
./configure && make depend && make
Подробности см. в файле INSTALL
.
Создание и установка .deb-пакета (Debian)
Перед началом, необходимо удалить все пакеты wine*
и libwine*
, а также установить пакет checkinstall.
Кроме того, необходимо вручную удостовериться, что все зависимости Wine установлены, поскольку созданный с помощью checkinstall
пакет не будет содержать информации о зависимостях. Как правило, если такой пакет “ручной сборки” ставится в систему после удаления любого другого .deb-пакета Wine (к примеру - из его репозиториев, либо из официальных репозиториев Debian), проблем с зависимостями не будет.
sudo checkinstall -D -y --fstrans=no --install=yes --pkgname=wine \ --pkgversion=`colrm 1 13 < VERSION``test -e .git && echo +git` --pkgrelease=at`date +%Y%m%d%H%M%S`
Подробности см. в man checkinstall
.
lib(n)curses
и libhal
, поэтому без этих возможностей решил обойтись