Linux -- это интересно

Wine - особенности запуска программ


Рубрика: Изучаем Linux -> Игры -> Hужное/полезное
Метки: | | |
Просмотров: 27907

Теперь можно запускать программы для Windows! Если программа запускается уже сейчас, работая полностью, на 100% - это называется Platinum (Платина). Если тоже запускается на 100%, но только с использованием нативных библиотек операционной системы Windows, после установки noCD, и совсем небольшой донастройки - это Gold (Золото). Если чего-нибудь при этом не работает в программе, вроде новых графических эффектов или функции программы, иои если работает, но требуя кропотливой донастройки - это Silver (Серебро). Если работает еле как, и если при этом требуется долгая донастройка (как с Windows Media Player 11) - это Bronze (Бронза). Если не работает, не устанавливается, или устанавливается, но не работает - это Garbage (Мусор).

Второй мой совет о донастройке касается шрифтов. Это - самый простой, но очень действенный мой совет по донастройке Wine! Если у вас есть установленная копия операционной системы Windows, можно сделать символическую ссылку на его шрифты или скопировать их. Если нет - достать и скопировать! Сделать символическую ссылку можно в графическом файловом менеджере, например так: зажать клавишу Alt, а затем перенести каталог со шрифтами из одного кона (вкладки) в другое (другую). У нас спросят, чего мы хотим? Скопировать, перенести, или сделать ссылку? Выбираем ссылку! Имеющийся каталог со шрифтами можно спокойно удалить - обычно он пустой,если вы не устанавливали программы, устанавливающие свои собственные шрифты. Например, Microsoft Office или Adobe Photoshop.

А можно сделать символическую ссылку из консоли. Например, вот так:

cd ~/.wine/drive_c/windows
rm -r Fonts
ln -s /windows/WINDOWS/Fonts Fonts

Внимание! Следите за тем, чтобы у вас не появилось два каталога со шрифтами, fonts с маленькой буквы, и Fonts с большой буквы! Wine, как и операционная система Windows, не умеет работать с такими особенностями файловой системы для Linux. Из-за этого же я даю вам третий совет: хотите установить любительский плагин для игры? Распаковывайте файлы в каталог игры архиватором для Windows: WinRAR, WinZip, WinACE, 7-Zip - какой лично вам удобнее! Если не хотите, распаковывайте/копируйте файлы плагинов вручную, и следите, чтобы не появились, например, каталоги meches и Meches одновременно. Или файлы.

Что можно запустить? Программы и игры. Если программа содержит драйвер (например, программа эмуляции CD/DVD-привода, защита от копирования дисков вроде StarForce), он не заработает. Заработают только файлы с расширением exe, и библиотеки с расширением dll.

А что делать, если программа не запускается? Нужно зайти на сайт http://appdb.winehq.org/, и ввести название (или часть названия) программы в строку поиска. Лично я так делаю перед запуском каждой новой для себя программы - даже не пробуя её запустить самостоятельно! Открыв страничку программы, вы увидите то, в каких версиях Wine пользователи заставляли программу работать (в новых версиях программы Wine могут начать запускаться новые программы, а иногда и переставать запускаться те программы, что работали раньше), её рейтинг (я описал рейтинги программ на этом сайте выше) для каждой опробованной версии программы Wine, и список действий для того, чтобы запустить программу, если её рейтинг не Platinum. Также если рейтинг программы не Platinum, вы можете увидеть список известных в Wine багов, которые проявляются при запуске именно этой программы. Когда вы дочитаете этот текст, вы сможете сами добавлять новые версии программ, и создавать странички для тех программ, которых нет в списке.

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

Для начала, четвёртый совет. Его мне подсказали на сайте opennet.ru, в комментариях к новости об одной из версий программы Wine, которая тогда была самой новой. Начиная с той версии, компонент Wine Gecko, не входящий в состав программы Wine и загружаемый из Интернета отдельно, загружается при первом запуске winecfg. А раньше его предлагали загрузить при первому запросу программы в Wine к браузеру Internet Explorer, или его возможностям. В случае отказа программа или закрывалась, или продолжала работать без какой-либо функции. Затем можно было запустить программу снова, нажать на те же самые кнопки, и загрузить Wine Gecko. А в последнихъ версиях программы Wine этот компонент загружается сразу, а в случае отказа нам больше не напоминают о нём! И будут тогда закрываться без объяснения причин некоторые программы, а часть функционала в них не работать... Мне это не нравится. Для решения проблемы надо загрузить файл gecko-1.0.0.cab (кажется, он называется так), и положить его в каталог /usr/share/wine/gecko. Каталог gecko нужно предварительно создать. Если вы не нашли каталога wine в /usr/share, а Wine у вас утсановлен, то возможно, что вы установили Wine в /usr/local. Тогда копируйте файл в /usr/local/share/wine/gecko :-). Если и там каталога wine нет - а он у вас установлен вообще? А работает? Найдите сами, куда вы установили Wine себе :-)

Это может быть нужно в том случае, если для каждого нового wineprefix'а вы не хотите каждый раз подключаться к Интернету и скачивать 10 мегабайт этого компонента. Или у вас медленый или дорогой Интернет.

Если вы предпочитаете использовать стабильную версию Wine, 1.0 или 1.0.1, версия Gecko 1.0.0 вам не подойдёт... Она вышла только недавно. А тогда, насколько я помню, был Wine Gecko версии 0.1. Вот его и загружайте! А может и 0.9...

Продолжаем тюнинг Wine! Чтобы как можно больше программ запустилось без предварительной донастройки программы Wine, советую установить .NET 2.0 и DirectX! В Wine уже есть библиотеки-эквиваленты для поддержки DirectX, но эта поддержка неполноценна. Лучше использовать нативный вариант... Для одной игры можно взять ту библиотеку (или несколько тех библиотек), которые просит игра, а затем положить в каталог с игрой. И ничего больше не надо. Однако можно установить DirectX полностью, и игры больше не попросят «правильные» для неё библиотеки...

Пятый совет. Устанавливаем DirectX. Когда это придумали, актуальная версия программы Wine была 0.9.4x. Было большое руководство, где самой трудоёмкой частью работы было вписывание библиотек в winecfg. Нужно было заприсать около 30-ти библиотек, большинство как нативные для Windows, и часть как нативные для Wine (Хотя на самом деле они были из Windows). В стабильной версии 1.0 или 1.0.1 ничего этого уже не нужно. Нужно только взять файлы mscoree.dll и streamci.dll из Windows, а затем положить их в каталог ~/.wine/drive_c/windows/system32. Иначе установка не удастся, а программу установки придётся выключить при помощи wineserver -killall (эта команда доступна, кстати, как раз со времён версий программы 0.9.4x). В более ранних версиях Wine это кстати тоже надо было делать.

Если у вас нестабильная версия Wine (любая 1.1.*), то на библиотеку mscoree.dll будет ругаться программа установки. Скажет, что библиотека из .NET есть, а самого .NET почему-то нет!! Однако, установка проходит успешно (а может я и ошибаюсь - не помню уже). streamci.dll больше не надо - об этой библиотеке можно забыть. Сегодня и уже кажется около года никаких дополнительных библиотек не нужно. DirectX хоть и установится, но будет устанавливаться страшно медленно без mscoree.dll. Итак, теперь мы знаем, как установить DirectX в Wine. А вот и видео на YouTube с работающим в Wine dxdiagn! Для того, чтобы DirectX установился мгновенно, нужно установить .NET. Мы ведь собирались его установить тоже?

Я забыл важный момент. Устанавливать DirectX, .NET, Microsoft Visual Basic 2005/2005_SP1/2008, и ещё много разных полезных для запуска программ компонентов, можно без ручной работы. Есть скрипт winetricks (он «живёт» здесь: http://wiki.winehq.org/winetricks). Этот скрипт, кстати, иногда обновляется. Но - файлы установки скачиваются из Интернета, наличия их на компьютере у нас не спросят. Для России с нашей народной традицией «Золотой софт: все программы на одном диске», такой способ очень не подходит... И безлимитный скоростной Интернет есть не у каждого, чтобы постоянно загружать такие объёмы информации. 20 мегабайт для .NET 2.0, 120 для DirectX... Нет уж, спасибо! Поэтому я пишу то, как сделать всё вручную.

Шестой совет. Я считаю оптимальной версию .NET 2.0. 3.0 ни одна из опробованных мной программ не попросила. Но если хотите - в winetricks он есть... 3.5 пока что не запускается - установка завершается ошибкой. Вам потребуется файл l_intl.nls из Windows, который «проживает» там в каталоге WINDOWS\System32. Положите его в ~/.wine/drive_c/windows/system32. Затем запустите winecfg любым удобным для вас способом, и установите версию Windows как 2000. Теперь можно запустить файл dotnetfx.exe, и установка завершится успешно.

Есть ещё одна тонкость... После установки .NET в Wine начиная с версии 1.1.1 (в общем, любая нестабильная версия Wine), наблюдается пауза перед запуском любой программы в минуту. Если у вас девелопперская версия программы Wine, вам необходимо сразу после .NET установить компонент Visual Basic C++ Libraries 2005/2005_SP1/2008. Любую версию в общем... А если вы предусмотрительны, то перед установкой .NET :-)

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

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

Мой рецепт запуска всех возможных программ в Wine, которые в нём только могут запуститься, это:

Wine - особенности запуска программ
1). Скомпилировать Wine из исходного кода с проприетарным драйвером видеокарты, если запускаемая вами программа - игра.

2). Установка шрифтов из Windows.

3). Установка Wine Gecko вручную.

4). Установка Visual Basic C++ Libraries 2005/2005_SP1/2008.

5). Установка .NET 2.0.

6). Установка DirectX.

Сразу после этого можно установить любую программу! И если она не запустилась, значит, Wine не может запустить её без ухищрений, и необходимо посетить сайт http://appdb.winehq.org/, чтобы найти дополнительные инструкции - либо удостовериться, что программу запустить никому не удалось :-) Или - добавить недостающую программу и результаты её тестирования самому! :-)

Читайте предыдущие части:

Wine - введение

Wine - первый запуск

Комментариев: 12 RSS

Объясните пожалуйста, как скомпилировать с проприетарными драйверами? Какую опцию надо добавить в ./configure, чтобы драйвера скомпилировались вместе с Вайном?

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

Я обычно если собираю, то указываю --prefix=/opt/wine-1.xx и потом просто запускаю /opt/wine-1.xx/bin/wine

В целом ничего сложного. Если собирёте и заметите какие-то изменения, хорошо бы их высказать тут :) К сожалению, у меня времени на проверку нет.

Не миф. Я автор статьи, оригинал (с кучей лишнего текста) вот он: http://zenitur.narod.ru/Wine.html

Я заметил это с nvidia и игрой Morrowind. Если Wine не скомпилировать с проприетарным драйвером, вода глючит. Больше нигде сбоев я не видел, кроме непатченного сталкера. Скомпилировал с Mesa3D - глючит. Можно и забыть об этом, но когда я скомпилировал Wine с драйвером от ATi, пропало очень много докучавших мне проблем - например, в игре Oblivion пропали тормоза только так.

Вот ещё что - почти такая же статья, но короче и проще. http://www.playground.ru/dox/stalker_shadow_of_chernobyl/3137/ . Запуск одной конкретной игры.

Я указывал ссылку на оригинал в первой части статьи. Просто я на 3 части разбил и часть про отсылку багов так и не опубликовал.

Если чего ещё захочешь написать, всегда рад опубликовать :)

О, да ты в онлайне. Круто )) Как насчёт руководства о вступлении в Фидонет?

да про что угодно :)

мой джаббер несложно найти ))

Таже в панели справа.. ))

Так в итоге никто и не написал - как же всё-таки компилить вайн с поддержкой нвидиа карт. http://zenitur.narod.ru/Wine.html

в смысле, не написал никто?

Устанавливаете дрова нвидиа, компилируете вайн, всё.

Это по предположениям автора, которые вполне могут быть справедливыми.

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

Это всё понятно. Просто написано таким образом, что для того-чтобы скомпилировать Вайн, нужно при компиляции задать какие-то конкретные параметры под конкретную видеокарту - вот о чём я подумал.

Влад, начиная с драйвера nvidia 260.xx.xx, вышедшего на этой неделе, необходимо помимо самого видеодрайвера устанавливать дополнительную программу, -devel пакет можно сказать... Иначе в каталоге include не появятся заголовочные файлы от OpenGL этого видеодрайвера. Без них компиляция Wine не даст улучшения работы (но с nVidia и улучшать-то нечего, так, две игры я нашёл, может конечно больше). Mesa не то чтобы с ошибками, она частично недописана. Зато с ATi вайн часто тормозит в играх, если вайн скомпилирован со стандартной для большинства Linux-дистрибутивов реализацией OpenGL Mesa. А ещё отрисовывает неправильно. Это конечно же не касается хорошего, но ещё медленного, свободного видеодрайвера ati.

> иои если работает

> при первому запросу программы

> в последнихъ

Автор +1, Красавчик хорошо расписал, буду пробовать

Оставьте комментарий!
Используйте нормальные имена.Войти через loginza
Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



 
(обязательно)