Запуск Win32-приложений
Несмотря на то, что:
- хранилища содержат очень много различного программного обеспечения;
- пакеты ставить в любом случае проще и комфортнее для пользователя, чем какие-либо приложения с собственным инсталлятором;
иногда всё-таки возникает необходимость воспользоваться каким-то приложением, которое распространяется исключительно под Windows.
Для того, чтобы осуществить подобное, в Linux используется программа WINE (WINE = Wine Is Not an Emulator).
Таким образом, название сообщает нам, что эта программа не является эмулятором. И верно, на деле принцип работы Wine проще: так как windows-приложение состоит из тех же процессорных инструкций, что и любое другое приложение под данный процессор, то для его исполнения достаточно сделать вид, что оно исполняется в привычной для себя Windows-среде --- т.е. вызывает из нужных библиотек нужные функции, распознает правильную абстракцию файловой системы и т.д.
Параметры данной "искуственной" среды задаются в конфигурационных файлах wine (их удобно редактировать с помощью утилиты winecfg): к примеру, там задаётся соответствие "дисков" Windows, которые сможет "увидеть" запускаемая Windows-программа, некоторым каталогам вашей файловой системы в Linux. Стоит быть осторожным при задании этих каталогов: если исполняемое при помощи wine приложение находится вне них, работать оно не будет.
Могут возникнуть и другие неожиданности --- например, при запуске консольных Windows-приложений:
[user@demo ~]$ wine Far.exe err:winedevice:ServiceMain driver L"eusk3usb" failed to load err:winedevice:ServiceMain driver L"SNTNLUSB" failed to load err:seh:setup_exception_record stack overflow 188 bytes in thread 0009 eip cdcdcdcd esp 00231274 stack 0x230000-0x231000-0x330000
Far Commander не запустится просто так, потому что здесь он должен работать в консоли Linux. Wine сам этого отличить не может, и надо это явно указать: wine-console --backend=user Far.exe
Также при работе с консольными приложениями, скорее всего, стоит указать в конфигураторе winecfg режим эмуляции Windows 98 из-за некоторых проблем с вызовом программ в консоли Windows.
Но, увы, все эти и многие другие ухищрения могут ни к чему не привести - большое количество Windows-приложений ни при каких условиях не сможет заработать в среде wine по тем или иным причинам. Сообщество поддерживает различные базы приложений, работающих в wine, одна из них находится на самом сайте wine --- Wine HQ App DB.
Чтобы завершить наш разговор на тему пакета wine, определим его общее предназначение: wine --- свободная программа, предназначенная для запуска Windows-программ. Помимо этого, на базе wine в данный момент разрабатываются как минимум три известных несвободных версии, которые предназначены для более специфичных прикладных задач:
- Cedega --- расширенный wine с встроенной поддержкой DirectX для запуска Windows-игр. Разработкой и поддержкой программы занимается компания Transgaming software;
- Crossover office --- расширение wine, созданное для запуска и комфортной работы с офисными Windows-приложениями;
- В Санкт-Петербурге функционирует команда wine@etersoft, которая занимается приспособлением wine для запуска программных продуктов, специфичных для российского рынка --- 1С, генераторы отчётов и документов и т.д. В отличие от предыдущих программных продуктов, wine@etersoft local --- свободный программный продукт, и в такой версии он входит в дистрибутив ALTLinux. Помимо версии local существуют также версии network и sql: первая позволяет запускать продукты 1С для многопользовательской работы с клиентами, а вторая умеет транслировать sql-запросы по образу и подобию Microsoft SQL. Кстати, документация для wine, созданная wine@etersoft, рекомендуется к прочтению как лучшая из существующих.
Стоит отметить, что приложения на Java, скорее всего, будут работать.
Сведения о ресурсах
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
1 |
1 |
1 |
|
1 |