Иногда бывают ситуации, когда для работы необходимо одно-два приложения, работающих только в ОС Windows. Например, пользователю необходимо запускать приложение в Lotus Notes, которое в свою очередь использует OLE-автоматизацию и открывает документы в Microsoft Office. Следовательно, не смотря на наличие клиента Lotus Notes для ОС семейства Linux, всё равно придётся установить Lotus Notes для ОС Windows.
Работа приложений для ОС Windows в Ульяновск.BSD обеспечивается транслятором wine. И установка каждого такого приложения имеет свои особенности. С уверенностью можно гарантировать работу тех приложений и их версий, установка которых проверена многими пользователями. Подробнее о совместимости приложений можно узнать в базе данных на сайте WINEHQ. В данном случае рассмотрим установку и работу 32-х битных приложений Lotus Notes 8.5.3 (Basic) и Microsoft Office 2010 Professional.
Для начала необходимо установить 32-х битную версию транслятора wine и утилиту winetricks для решения некоторых проблем:
pkg install -r latest i386-wine-devel winetricks
Если в портах более свежая версия, чем в пакетах, то пакет последней версии wine можно собрать самостоятельно. Но собрать пакет 32-х битной версии wine из порта обычным образом невозможно. Потребуется потратить некоторое количество времени и сделать следующее:
В терминале под пользователем root необходимо выполнить команды:
portsnap fetch extract
cd /usr/src
make buildworld TARGET=i386
make installworld TARGET=i386 DESTDIR=/compat/i386
make distribution TARGET=i386 DESTDIR=/compat/i386
ln /etc/resolv.conf /compat/i386/etc
mkdir /compat/i386/usr/ports
mount -t devfs devfs /compat/i386/dev
mount -t nullfs /usr/ports /compat/i386/usr/ports
chroot /compat/i386
setenv MACHINE i386
setenv UNAME_m i386
setenv UNAME_p i386
service ldconfig start
cd /usr/ports/emulators/i386-wine-devel
make package -DWINE_CROSS_BUILD
exit
rm -R /usr/obj/*
В итоге готовый пакет будет находиться в каталоге:
/usr/ports/emulators/i386-wine-devel/work/pkg/
Полученный таким образом пакет можно установить командой (флаг -f обязателен):
pkg add -f имя_пакета
|
Если в системе используется графический драйвер nvidia версии ниже 440.59, то необходимо запустить патч для включения 2D/3D ускорения в драйвере. Без этого программы, требующие 2D/3D ускорения, могут не работать:
/usr/local/share/wine/patch-nvidia.sh
Данный патч сработает только если графический драйвер nvidia установлен из порта или пакета. Если в системе включена подсистема автоматического определения графического драйвера,то драйвер nvidia будет работать, но он не будет считаться установленным в систему и патч не сработает. В этом случае перед запуском патча необходимо отключить подсистему автоматического определения графического драйвера, прописав в файл /etc/rc.conf (Внимание! Подсистема автоматического определения графического драйвера должна хотя бы один раз перед этим корректно отработать.):
initgfx_enable="NO"
После этого необходимо отредактировать файл /usr/local/etc/X11/xorg.conf.d/10-nvidia.conf, удалив из него строки ModulePath в секции Files, и перезагрузить систему. После всего этого уже можно запускать патч.
Если в системе установлены принтеры и предполагается печатать на них из приложений запускаемых в wine, то необходимо под пользователем root создать ссылку:
mv /etc/printcap /etc/printcap_
ln -s /usr/local/etc/printcap /etc/printcap
Внимание! После добавления принтера информация о нём попадает в файл /usr/local/etc/printcap только после перезагрузки CUPS. Чтобы wine правильно воспринимал принтеры, их названия и описания должны быть обязательно заданы и, если в названиях есть буквы, то они должны быть только латинскими. Пример правильной строки с описанием принтера в файле /usr/local/etc/printcap:
HP-1018|Office printer N1:rm=ulbsd:rp=HP-1018:
Обычно рекомендуется устанавливать каждое приложение для wine в каталог с индивидуальным префиксом. Но в данном случае приложения должны взаимодействовать друг с другом и должны быть установлены в один и тот же каталог. Необходимо создать каталог и проинициализировать настройки wine в этом каталоге:
mkdir -p $HOME/.wine/lotus
env WINEPREFIX=$HOME/.wine/lotus winecfg
Откроется окно конфигурации wine, в котором на вкладке «Applications» в поле «Windows Version» необходимо выбрать Windows XP, а на вкладке «Graphics» убрать галочку «Allow the window manager to decorate the windows» и нажать кнопку «ОК».
Теперь можно запускать установку Microsoft Office (предполагается, что дистрибутив находится в текущем каталоге):
env WINEPREFIX=$HOME/.wine/lotus wine Office_Pro_2010_Russian_x32.exe
Для установки желательно выбрать только Microsoft Excel, Microsoft PowerPoint, Microsoft Word, Общие средства Office и Средства Office, а остальные параметры оставить по умолчанию.
После успешной установки Microsoft Office необходимо установить библиотеки msxml6 и dotnet20. Затем снова запустить конфигуратор wine:
env WINEPREFIX=$HOME/.wine/lotus winetricks msxml6 dotnet20
env WINEPREFIX=$HOME/.wine/lotus winecfg
В конфигураторе на вкладке «Libraries» в выпадающем списке «New override for library» выбрать riched20 и нажать кнопку «Add», то же самое сделать для gdiplus и нажать кнопку «ОК».
Для устранения проблемы с минимизацией и максимизацией окон Microsoft Office под wine необходимо сделать следующее. Открыть «Параметры системы» → «Поведение окон» → «Особые параметры окон» и создать новое правило. На вкладке «Выбор окон» заполнить поле «Описание». В выпадающем списке «Класс окна (приложение)» выбрать «Регулярное выражение» и ввести:
.*\b(winword.exe|excel.exe|powerpnt.exe)\b.*
Поставить галочку «Соответствие всему классу окон». На вкладке «Геометрия» поставить галочку «Игнорировать запрошенную геометрию», выбрать «Принудительно», выбрать «Да». В завершение нажать кнопку «ОК».
Теперь можно перейти к установке Lotus Notes (Basic) (предполагается, что дистрибутив находится в текущем каталоге):
env WINEPREFIX=$HOME/.wine/lotus wine Lotus_notes853_BC_Win_RU.exe
После успешной установки в случае возникновения проблемы с открытием в Lotus Notes диалога «Файл» → «Безопасность» → «Безопасность пользователя...» необходимо сделать следующее. Скопировать из рабочей системы Windows XP из каталога %WINDIR%\system32\ файлы oleacc.dll, oleaccrc.dll и переписать их в каталог $HOME/.wine/lotus/drive_c/Program Files/IBM/Lotus/Notes/. Затем необходимо запустить конфигуратор wine и на вкладке «Libraries» в выпадающем списке «New override for library» выбрать oleacc и нажать кнопку «Add».
Если при установке Lotus Notes была выбрана опция установки «Только для меня» и после этого Lotus Notes запускается с ошибкой, то можно попробовать изменить команду запуска в ярлыке Lotus Notes. Она должна выглядеть так:
env WINEPREFIX=$HOME/.wine/lotus wine "C:\Program Files\IBM\Lotus\Notes\notes.exe" -sa
"=C:\Program Files\IBM\Lotus\Notes\notes.ini"
А рабочий путь в ярлыке должен выглядеть так:
$HOME/.wine/lotus/dosdevices/c:/Program Files/IBM/Lotus/Notes/
В итоге можно вполне комфортно работать в Lotus Notes и Microsoft Office. Ярлыки всех устанавливаемых под wine приложений появляются в меню «Приложения» → «Wine» → «Programs».
Примечание 1:
Установка Lotus Notes 8.5.3 (Basic) и Microsoft Office 2010 Professional проверена в wine версии 2.0.1. В более новых версиях wine установка этих приложений не проверялась.
Примечание 2:
Ядро операционной системы можно настроить для обнаружения бинарного файла MS Windows и автоматического запуска wine для запуска бинарного файла MS Windows. Следующую команду необходимо набрать одной строкой в терминале под пользователем root:
binmiscctl add wine32 --interpreter /usr/local/bin32/wine --magic "\x4d\x5a\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff\x00\x00\xb8\x00\x00\x00" --mask "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff" --size 20 --set-enabled
Это позволяет рассматривать бинарные файлы MS Windows как обычные бинарные файлы (т.е. не нужно для запуска указывать wine имя_файла.exe, достаточно просто указать имя_файла.exe).