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

LXF94:Windows в Wine

Материал из Linuxformat
Версия от 17:14, 14 марта 2010; 2sash-kan (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

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 года (http://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

Пример: Photoshop

Вам уже хочется запустить свои любимые приложения? Но, как мы уже говорили, некоторые программы работают отлично, а другие – с большим трудом. Поэтому остается только пробовать, скрестив пальцы. База данных приложений Wine (http://appdb.winehq.org) содержит список из сотен поддерживаемых программ, для каждой из которых указана «совместимость». Там вы сможете найти необходимую программу. Самые популярные программы описаны во врезке «Что можно запускать?» на стр. 41.

Сейчас мы установим Adobe Photoshop 7. Конечно, это не самая последняя версия известного графического редактора, но она очень хорошо работает в Wine. Скопируем установочные файлы с дистрибутивного диска в папку Photoshop в домашнем каталоге. Запустим терминал и выполним следующие команды

cd Photoshop
wine Setup.exe

Появится окно инсталлятора, который проведет нас через все этапы установки. Он скопирует файлы Photoshop в виртуальную папку Windows .wine/drive_c и добавит информацию о нем в файлы реестра (они также расположены в папке .wine). Как только инсталлятор завершит работу, мы сможем запустить Photoshop командой

wine .wine/drive_c/Program\ Files/Adobe/Photoshop\ 7.0/photoshop.exe

Вот и все! Photoshop работает в Linux. И очень неплохо: некоторые диалоги долго открываются, и окно с инструментами появляется сразу на всех виртуальных рабочих столах, но в остальном – очень удобно. Однако мы можем сделать еще кое-что...

Советы по настройке

Закройте все запущенные в Wine программы и введите winecfg в окне терминала. Появится окно Windows-программы, позволяющей задавать различные настройки Wine, повышающие совместимость и производительность. Мы изучили советы других пользователей по оптимизации запуска Photoshop 7 (их можно найти на странице http://appdb.winehq.org) и хотим поместить все панели инструментов Photoshop в одно рабочее пространство. Для этого выберем вкладку Графика (Graphics), затем Эмулировать виртуальный рабочий стол (Emulate A Virtual Desktop) и установим его разрешение в 1024 x 768.

Запустим Photoshop снова, и voil – он в отдельном окне! Мы больше не увидим следов его панелей инструментов после переключения рабочего стола. Попробуйте запустить другие программы, и вы оцените все удобство Winecfg – раньше на правку конфигурационных файлов приходилось тратить кучу времени, а сейчас практически все настройки можно изменять с помощью графического интерфейса.

На вкладке Приложения (Applications) можно даже изменить версию Windows, которую эмулирует Wine (например, установить Windows 98 вместо 2000). Эта возможность особенно полезна при запуске старых программ.

Вот как выглядит оптимальный способ запуска приложений Windows с помощью Wine: найти рекомендации по запуску этого приложения в базе данных на сайте, посмотреть на результаты тестов для этого приложения и изменить необходимые настройки в Winecfg до установки или запуска программы. Если установить программу не получается и на компьютере установлены две операционные системы, можно попробовать запустить ее прямо с раздела, на котором установлена Windows (мы проделали это с Солитером). Раздел Windows обычно смонтирован в папке /mnt или /media.

Итак, давайте вспомним основные моменты: для запуска программы используется команда wine <progname.exe>, файлы виртуальной Windows хранятся в папке .wine/drive_c в домашнем каталоге пользователя, а для настройки параметров запуска программ в соответствии с описанием программы в базе данных Wine нужно ввести команду winecfg. Для запуска установленной программы можно не пользоваться командной строкой. Достаточно создать ярлык для исполняемого файла программы, который находится в папке .wine/drive_c, и прописать в нем команду для запуска программы в Wine, например:

wine /home/username/.wine/drive_c/myprog.exe

Небольшой совет: если после установки новой программы Wine перестает нормально работать, удалите папку .wine в своем домашнем каталоге. Она будет создан снова при следующем запуске Wine. Конечно, все остальные программы придется переустанавливать, но это полезно знать на случай, если ваш Wine «прикажет долго жить».

Установка с WineTools

Хотя установка программы из окна терминала – дело нехитрое, WineTools (www.von-thadden.de/Joachim/WineTools) использует для этого графический интерфейс, управляемый с помощью меню. Скопируйте архив winetools-0.9jo-III.tar.gz из раздела Система/WineTools на второй стороне нашего DVD на жесткий диск и введите в окне терминала следующие команды:

tar xfvz winetools-0.9jo-III.tar.gz
cd winetools-0.9jo-III

Начните сеанс работы с правами пользователя root с помощью команды sudo bash (Ubuntu) или su (в других дистрибутивах), затем введите ./install. После этого введите exit для окончания сеанса root. Введите wt, и на экране появится первое диалоговое окно установщика. Выберите базовую установку (Base Setup), затем обновите каталог .wine (Update An Old Fake Windows Drive). После этого на экране появится окно базовой установки (Base Setup). В этом окне нужно щелкнуть главное меню (Main Menu).

В режиме установки протестированного ПО (Install Tested Software) можно добавлять различные приложения, которые будут загружены из Интернета или взяты с CD/DVD-диска. Например, если выбрать Acrobat Reader в меню Player, WineTools загрузит инсталлятор этой программы, покажет все зависимости и запустит установщик.

Обратите внимание, что в некоторых случаях WineTools потребуется установка DCOM98 и Internet Explorer необходимой версии, это можно сделать в меню базовой установки (Base Setup). И это тот случай, когда совместное использование Wine и WineTools может вызвать проблемы – так наш компьютер завис при установке DCOM98, но будем надеяться, что в будущих версиях Wine и/или WineTools эта проблема будет решена. Несмотря на некоторые шероховатости, многие программы отлично работают, кроме того, WineTools избавляет нас от необходимости поиска нужного .exe-файла при загрузке программы из Интернета.

Будущее Wine

А что же Microsoft? Компания пока не сделала официальное заявление о проекте Wine, но службы Windows Update и Windows Genuine Advantage уже проверяют системный реестр на наличие ключей Wine и блокируют все обновления системы в случае их обнаружения. Для большинства из нас это не проблема – отдельные программы Windows гораздо важнее последней версии дефрагментатора диска. Тем не менее, это говорит о том, что Microsoft очень внимательно следит за развитием Wine.

Многообещающим проектом из мира Wine является Wine-Doors (http://www.wine-doors.org), программа для Gnome, которая расширяет функционал WineTools и еще больше упрощает установку программ Windows в Wine. На момент написания статьи не было даже версии 0.1, и исходный код был доступен только через SVN, но первый релиз может появиться очень скоро. Следите за информацией на сайте проекта.

Между тем, разработчики Wine прокладывают дорогу к версии 1.0. Мы ждали ее многие годы, но с выпуском Windows Vista момент выпуска снова может быть отодвинут. Впрочем, в сохранении номера 1.0 для полноценной работающей версии нет ничего зазорного. Расскажите нам о том, как вы установили Wine – наши форумы http://unixforum.org открыты для обмена положительными эмоциями, помощи, если что-то не получается, и других вопросов по запуску разных программ Windows в Wine. Удачи!


Что можно запускать?

Вообще говоря, лучше использовать более старые версии программ, потому что свежие релизы могут работать с кучей ошибок или не запуститься совсем. Поддержка игр, использующих DirectX, постоянно улучшается, поэтому если программе хотя бы года три, никаких проблем, скорее всего не будет. Вот список наиболее популярных приложений, совместимых с Wine:

Microsoft Office. Microsoft Office 2000 работает отлично, с Office XP есть некоторые проблемы, а о поддержке Office 2007 сейчас даже не думают. Word XP работает отлично, хотя и медленно.

Internet Explorer. Даже не думайте об использовании седьмой версии браузера, если не знаете, как с помощью Wine убедить установщик в том, что он запущен на подлинной системе Windows. Версию 6.0 можно использовать для тестирования создаваемого вами web-сайта.

Adobe Dreamweaver. Восьмая версия, один из последних релизов Dreamweaver, работает вполне прилично, хотя операции копирования и вставки могут вызвать ошибки. Чтобы установить Dreamweaver, может потребоваться несколько попыток.

Adobe Photoshop. При работе с версиями 7 и CS (8) проблем почти нет. В версии CS2 иногда возникают ошибки с расширениями и клавишами быстрого доступа.

Quicken. Хотя в версии 2002 года не очень хороши шрифты и есть проблемы с печатью, в целом пакет работает стабильно по сравнению с другими релизами.

Apple iTunes. Не стоит пробовать версию 7.0. Версии 4.9 и 6.x вполне работоспособны, хотя есть проблемы с передачей файлов и воспроизведением треков. Сейчас поддержка iTunes оставляет желать лучшего.

Half-Life 2. Работает очень хорошо, хотя число кадров в секунду ниже, чем в Windows, и есть проблемы с графикой.

CrossOver и Cedega

Существуют также коммерческие версии Wine, которые используют ту же кодовую базу, но добавляют удобства – в них вам не придется открывать командную строку, чтобы запустить Windows-программу. В отличие от свободного Wine, эти решения фокусируются на поддержке вполне определенного набора приложений, зато достигают лучшей совместимости с ними.

CrossOver Linux от CodeWeavers (http://www.codeweavers.com) – это модификация Wine, оптимизированная для запуска популярных программ, среди которых Office 2003/XP, iTunes и Lotus Notes. Он также поддерживает расширения браузера, в том числе проигрыватели форматов QuickTime и Windows Media. Разработчики CrossOver концентрируют свои усилия на улучшенной (по сравнению с Wine) поддержке этих программ. Если вы пользуетесь только ими, то CrossOver Linux за $40 – прекрасная альтернатива полноценной копии Windows.

Хотя CrossOver поддерживает и некоторые игры, «хардкорным геймерам» гораздо лучше подойдет Cedega (http://www.transgaming.com). Эта программа, ранее известная как WineX, предназначена для запуска игр, в том числе World of Warcraft, Oblivion, Civ IV и многих других (полный список можно посмотреть на сайте программы).

Мы уже рассказывали о Cedega в этом месяце и в предыдущих обзорах, и ее производительность произвела на нас впечатление – часто невозможно понять, запущена игра в эмуляторе или в настоящей Windows. На момент написания статьи годовая подписка на Cedega стоила $60, и с учетом ее высоких темпов развития, это почти даром.

Персональные инструменты
купить
подписаться
Яндекс.Метрика