PostHeaderIcon FreeBSD 64 и Wine: теперь работает

Как известно, порт wine для freebsd имеет ограничение i386 only и, соответственно, не работает и даже не собирается под AMD64. Однако, есть несколько способов заставить-таки работать wine под шестидесятичетырехразрядной FreeBSD. Один из них описан в июньском номере BSD magazine. В преимуществах данного способа то, что нам не придется собирать ни строчки кода, что изрядно экономит время.
Ниже краткий перевод статьи из журнала

Для начала нужно подключить devfspseudo filesystem:

[cc lang=»bash»]# mount -t devfs devfs /compat/i386/dev[/cc]

Кроме того, нам нужно определить несколько алиасов:

[cc lang=»bash»]% alias winecfg32=»LD_32_LIBRARY_PATH=/compat/i386/usr/local/lib PATH=/compat/i386/usr/local/bin:$PATH /compat/i386/usr/local/bin/winecfg»
% alias wine32=»LD_32_LIBRARY_PATH=/compat/i386/usr/local/lib PATH=/compat/i386/usr/local/bin:$PATH /compat/i386/usr/local/bin/wine»[/cc]

Следующие действия нам нужно производить от имени рута.
Во-первых нам понадобится wget, так что если он не установлен в системе, делаем

[cc lang=»bash»]# pkg_add -r wget[/cc]

Затем определяем несколько переменных, которые будут использоваться позже:
[cc lang=»bash»]
# setenv UNAME $( uname -r | egrep -o «.*-[A-Z]+» )
# setenv URL ftp.freebsd.org/pub/FreeBSD/releases/i386/${UNAME}/base
# setenv DESTDIR /compat/i386[/cc]

Теперь создаем целевую директорию, скачиваем в нее и устанавливаем необходимые для нас FreeBSD datasets:
[cc lang=»bash»]
# mkdir -p ${DESTDIR}
# wget -r -c ftp://${URL}
# cd ${URL}
# chmod +x install.sh
# ./install.sh (answer ‘y’ here)[/cc]

Также нам нужно скопировать в наше /compat/i386 окружение информацию о DNS, что достигается просто копированием файла resolv.conf.

[cc lang=»bash»]# cp /etc/resolv.conf ${DESTDIR}/etc/[/cc]

Следующий шаг предполагает использование механизма chroot(8); мы определяем необходимые переменные, после чего устанавливаем WINE package с его зависимостями:

[cc lang=»bash»]# chroot ${DESTDIR} /bin/sh
> /etc/rc.d/ldconfig start
> export MACHINE=i386
> export UNAME_p=i386
> export UNAME_m=i386
> pkg_add -r wine
> exit
#
[/cc]

На этом все. Если все сделано по инструкции и правильно, то в нашей системе есть работающий Wine. Не все игры и приложения MS Windows требуют devfspseudo filesystem, однако некоторым она необходима, так что неплохо иметь ее примонтированной из /etc/fstab.

Теперь, чтобы запустить приложение windows, нам нужно использовать команду

[cc lang=»bash»]% wine32 app.exe [/cc]

А для запуска утилиты конфигурирования Wine:

[cc lang=»bash»]%winecfg32[/cc]

Для того, чтобы эти команды были доступны постоянно, нужно определить эти алиасы в файлах автозагрузки вашего шелла.

6 комментариев на “FreeBSD 64 и Wine: теперь работает”

Оставить комментарий

PR-CY.ru