RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
В связи с тем, что nVidia наконец выпустила драйвера для FreeBSD x86-64 (пока только бетта) загорелся перевести, наконец, домашний десктоп на фряху. Одна из возникших на моем пути проблем – всеми нами любимый пакет для запуска Windows-программ, Wine, на данный момент для пользователей FreeBSD поставляется только в версии x86, и на amd64 собираться из портов отказывается.
Погуляв по просторам гугла нашлось одно из решений – некто Mr. David Naylor написал порт к существующему Wine-1.1.35. Суть данного решения – собираем с помощью порта Wine пакет на машине i386 (для этих целей отлично сгодится и chroot на нашей машине, как это сделать опишу чуть позже), и затем спокойно устанавливаем его нашей amd64-машине. Выигрышем данного решения от решения, предложенного на wiki.freebsd.org является полная интеграция wine в нашу систему, в том числе и в kde (с помощью порта wine-doors).
Итак, приступим (команды выполняем от имени root’а, % – основной шелл, # – шелл в 386м окружении):
1. создаем chroot для наших эксперементов:
% mkdir -p /compat/i386% cd /usr/src && make buildworld installworld distribution TARGET=i386 DESTDIR=/compat/i386
Предварительно не забыв обновить сырцы с помощью csup. После запуска сотворения мира можно смело попить пивка часок ;)
2. Подмонтируем в чрут наши девайсы:
% mount -t devfs devfs /compat/i386/dev
3. Теперь можно начинать шаманить в чруте:
% chroot /compat/i386
# /etc/rc.d/ldconfig start
# mkdir -p /usr/ports
Устанавливаем i386-окружение:
# setenv MACHINE i386
# setenv UNAME_p i386
# setenv UNAME_m i386
Замечание: что бы wine поддерживала драйвера nVidia x64 перед сборкой wine в чруте надо не забыть установить ту же версию драйверов и на i386-машину, в процессе создания пакета необходимые библиотеки сами подцепятся.
4. Создаем порт wine-fbsd64, с помощью патча, предоставленного мистером David Naylor’ом =) Скачать его можно здесь. Из архива нам нужен файл wine-fbsd64.diff. Итак, продолжим:
# cd /usr/ports/emulators
# patch -sp0 < ~/wine-fbsd64.diff
# cd wine-amd64
# make package clean
После успешного создания тарболла можно его забрать по адресу: