Журнал LinuxFormat - перейти на главную

LXF94:Windows в Wine

Материал из Linuxformat
Перейти к: навигация, поиск

Windows в Wine

Никак не можете расстаться с любимым Windows-приложением? Вам поможет Wine. О нем-то и расскажет Майк Сондерс в первой из двух статей о достижении кросс-платформенной нирваны.

При всех достоинствах Linux и всем многообразии создаваемых для него программ приходится признать, что для разработки ПО платформа Windows остается более предпочтительной. И хотя разработчики Open Source трудятся не покладая рук, чтобы предоставить нам свободную альтернативу популярным программам Windows (в виде Firefox, OpenOffice.org и Scribus), в некоторых случаях полноценного эквивалента просто нет. Linux-версий нет как для крупных программ (Photoshop и Microsoft Office), так и для тысяч мелких.

Впрочем, выход есть. Это Wine. Сегодня речь пойдет не о напитках [Wine (англ.) – «вино», – прим. перев.], хотя после бутылки-другой, принятой за один вечер, тоже может показаться, что вы играете в Quake 8 на Atari ST [популярная в 1985–1990 годах модель настольного ком- пьютера с процессором Motorola, – прим. перев.] в своем домике на Венере. Мы поговорим об одной программе, с помощью которой другие программы, написанные для Windows, можно запускать в Linux.

В традиционном для Unix стиле аббревиатура Wine расшифровывается рекурсивно: «Wine – Это Не Эмулятор» (‘Wine Is Not an Emulator’). Но разве Wine не эмулирует Windows?

Нет. На самом деле, эмуляторы воссоздают работу устройства или программы полностью, а Wine лишь предоставляет «слой совместимости» между Linux и программами Windows. Когда приложение Windows говорит: «Я хочу открыть файл», Wine перехватывает это сообщение и преобразует его в системный вызов, понятный ядру Linux. Это означает, что для запуска программ Windows вам не потребуется ни установленной Windows, ни виртуальной машины типа VMware или Qemu.

Хотя Wine разрабатывается с 1993 года (www.winehq.org), его состояние далеко от совершенства: некоторые программы Windows работают безукоризненно, другие – с небольшими проблемами, а третьи – не запускаются вовсе. Казалось бы, после десяти лет разработки любая программа должна работать идеально, однако в случае с Wine есть два всегда актуальных препятствия:
1. Недокументированные возможности Windows Wine воссоздает в Linux программный интерфейс приложения (API) Windows, но поскольку многие системные вызовы в Windows недостаточно описаны в документации или совсем не документированы, разработчикам Wine приходится воспроизводить их функционал самостоятельно.
2. Новые версии Windows В далеком 1993 году разработчикам нужно было обеспечивать совместимость с Windows 3.1. Через несколько лет им было нужно эмулировать API Windows 95. Каждый раз, когда полная совместимость с текущей версией Windows почти достигнута, выходит новая версия, и все начинается сначала... Таким образом, лучшее, что вы можете сделать – это установить Wine и попробовать запустить некоторые Windows-приложения в Linux с его помощью. Вы увидите, что одни программы работают прекрасно, другие – нет, но если обновлять Wine регулярно (новый релиз выходит чуть ли каждую неделю), то результат не заставит себя ждать. На следующих страницах мы рассмотрим инсталляцию Wine и попробуем запустить некоторые программы.

Установка

Как мы уже говорили, Wine – это программа, которая предоставляет «слой совместимости» для запуска приложений Windows в Linux. На самом деле, это программа и набор библиотек, эмулирующих библиотеки DLL в Windows. К счастью, ее установка очень проста. Правильнее всего использовать менеджер пакетов вашего дистрибутива; установите все пакеты, найденные по запросу ‘Wine’ (обычно это wine, winelib и/или winetools). Если вы не знаете что делать или версия Wine ниже 0.9.1, возьмите последнюю версию программы из раздела Система на второй стороне нашего DVD.

Например, если вы используете Ubuntu, скопируйте файлы .deb с нашего DVD в свой домашний каталог и выполните команду

sudo dpkg -i *.deb

Система запросит пароль пользователя, затем Wine будет установлен. Если ваш дистрибутив использует RPM, скопируйте файлы .rpm в свой домашний каталог и выполните команды

su
rpm -ivh *.rpm

По запросу системы введите пароль пользователя root, и программа будет установлена. Еще одним вариантом является сборка Wine из исходных текстов. Предварительно убедитесь в том, что в системе установлены компилятор GCC и пакеты разработки для X-сервера. Скопируйте файл wine-0.9.39.tar.bz2 из раздела Система/Wine нашего DVD в свой домашний каталог и выполните команды

tar xfvj wine-0.9.40.tar.bz2
cd wine-0.9.40/
./configure
make depend && make

Если во время выполнения команды ./configure появились сообщения о неразрешенных зависимостях, установите недостающие инструменты разработчика с помощью менеджера пакетов. Например, если появилось сообщение об отсутствии заголовочных файлов X-сервера (Can’t find the X development headers), поищите пакеты вроде ‘xorg’ или ‘x11’ и установите те из них, названия которых заканчиваются на ‘-dev’ или ‘-devel’. После этого снова выполните команду ./configure. Используйте команду sudo bash (в Ubuntu) или su (в других дистрибутивах) для начала сеанса работы под пользователем root, затем выполните команду

make install

Программа Wine и ее библиотеки будут установлены в каталог /usr/local. Поздравляю – все готово! Если вы добавили Wine с помощью менеджера пакетов, он может оказаться в каталоге /usr, но вам не следует об этом беспокоиться.

Как это работает

Теперь давайте протестируем свежую версию Wine, запустив какоенибудь простое приложение. На второй стороне нашего диска в разделе Система/Wine вы найдете файл notepad-install.exe. Скопируйте его в свой домашний каталог и введите в окне терминала следующую команду

wine notepad-install.exe

На экране промелькнут несколько строк отладочного текста, затем появится окно установщика Notepad++. Это текстовый редактор для Windows, возможности которого не идут ни в какое сравнение с Notepad от Microsoft. Кроме того, его маленький размер в данном случае имеет значение. Итак, программа для Windows идеально работает в Linux! Как вы уже поняли, для запуска программы Windows в Linux используется команда wine <program.exe>. После завершения установщика запустится редактор Notepad++. С его помощью мы постараемся понять, как работает Wine. Начнем с открытия файла (пункт меню File > Open). Нетрудно заметить, что Wine отображает папку My Documents на домашний каталог пользователя, а диск Z: – на корень файловой системы (/). Но куда указывает диск C:? При первом запуске Wine создает в вашем домашнем каталоге папку .wine. В ней располагаются файлы реестра, в которых хранятся настройки программ, и подкаталог drive_c. Он и выступает в роли диска C: для приложений Windows, запускаемых с помощью Wine. Здесь же располагаются файлы установленных нами программ. Так, в drive_c можно обнаружить каталог Program Files, а в нем – папку Notepad++, в которой находятся файлы только что установленного текстового редактора. Итак, диск Z: указывает на дерево файловой системы Linux, и мы можем обращаться к файлам ОС Linux из программ Windows, а диск C: – на каталог, который содержит файлы установленных программ (это подкаталог drive_c каталога .wine в домашнем каталоге пользователя). Если вы захотите запустить Notepad++ снова, используйте команду wine <program.exe> следующим образом:

wine .wine/drive_c/Program\ Files/Notepad++/notepad++.exe

То же самое относится и к другим программам. После установки приложения найдите его исполняемый файл в папке .wine/drive_c. Затем вы сможете запустить программу. Для этих целей можно также приспособить ярлык на рабочем столе. Если на компьютере установлена Windows, можно зайти в ее каталог (он обычно находится в директории /media или /mnt) и попробовать «на зуб» стандартные программы. Например, для запуска классической игры Солитер используется команда [/media/hda2 надо заменить на точку монтирования в вашей системе, – прим. ред.]

wine /media/hda2/windows/system32/sol.exe
Персональные инструменты
купить
подписаться
Яндекс.Метрика