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

Wine (введение)


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

Что такое Wine

Название Wine есть аббревиатура: Wine Is Not An Emulator. Почему? Потому что это не эмулятор. Программу можно назвать прослойкой между программами для операционной системы Windows и операционной системой Linux, FreeBSD, MAC OS X. Это кроссплатформенная программа - спокойно запускается во многих операционных системах. Даже в Windows - а вдруг какая-нибудь старая программа не хочет работать в новой версии системы, или наоборот? Так как это прослойка, есть небольшая потеря в скорости. Мои игры работают с количеством кадров в секунду на 15% меньше, чем в Windows XP. Эмулятор, в отличие от подобной прослойки, имеет потерю в скорости работы программ в разы.

Wine обычно требует много зависимостей. Например, для того, чтобы специализированная для работы с локальной сетью программа для Windows работала, Wine делает прослойку с программой Samba. Например, интернет-пейджер QIP нуждается в компоненте Samba - Winbind. Однако, от ненужной лично вам зависимости всегда можно отказаться - подробнее пойдёт речь об этом в приложении. Если забыл сделать приложение - напомните?!

Ещё кое-что интересное

Запускается, к сожалению, не каждая программа. В моём представлении - почти каждое оконное приложение работает без проблем (если это не программа от самой Microsoft, пользующаяся огромным количеством специфических функций библиотек Windows). Работает также большинство игр. Эталонной средой для них является видеокарта nVidia с её проприетарными драйверами. С ним у вас должны заработать самые последние графические эффекты, и скорость работы игр будет максимальной (минус 15-20% от скорости работы той же игры в операционной системе Windows). Проприетарный драйвер ATi страдает большим количеством проблем, которые часто проявляются именно в Wine. То, что не работает с этим драйвером, может быть сбоем fglrx (проприетарного драйвера ATi/AMD), а не программы Wine. Если полноэкранное приложение у вас неожиданно заполнилось месивом содержимого экрана, нажмите Alt-F2 и наберите:

wineserver -killall

Правда, закроются все программы, запущенные в Wine - в том числе и фоновые и оконные, о которых вы могли и забыть. Эту команду также можно ввести из текстового терминала, нажав сочетание клавиш Ctrl-Alt-F1. Вернуться обратно можно сочетанием клавиш Ctrl-Alt-F7. Примечание: я уже набрал весь текст, поэтому мне так лень редактировать множество его участков... Пусть эта команда будет моим нулевым советом вам.

Ещё одно примечание: регрессии в запускаемых в Wine программах касаются только неработоспособности какого-либо компонента. Не бывает такого, что то, что работает, неправильно выдаёт результат, что логика работы программы нарушается. Например, архиватор не делает архивы, которые в Windows потом не открываются, программа для скриншотов не записывает файл задом наперёд. В играх машины не будут ездить по неправильной траектории, а на нас не будут нападать невидимые монстры. Вот эффект продвинутого освежения неба может не заработать, хотя включен в настройках, это да. Если ошибка и есть, программа аварийно завершает работу. Из 1000 программ, которые я протестировал, неправильная логика программы у меня встретилась только 2 раза. Первый случай: игра Герои Меча и Магии IV. Проверьте сами... Завершаем мы игру, убивая последнего врага. Что делает операционная система Windows? Пишет «Игрок Сизый уничтожен! Ура, игра закончилась!». Что делает Wine? Мы играем дальше, собираем ресурсы, артефакты - но как только появится любой диалог (например, мы захватили шахту), то сразу после него нам и пишут «Игрок сизый уничтожен, игра окончена!». Второй случай - в Сталкере. Я игру полностью прошёл в версии Wine 1.1.2. Запускаю его в 1.1.20, в 1.1.25... Замочу кучу врагов. Сохранюсь. Загружусь. Часть врагов под землёй, и оружия. Иногда его можно присесть и вытащить из-под земли. Чтобы всё появилось обратно, надо выйти из локации и зайти в неё обратно. Я не помню, было ли это в 1.1.2, я не пробовал эту игру в Windows и не знаю, может, это свой самой игры, а не Wine'а?.. Слушайте, а синяя полоска в меню инвентаря, она у меня всегда полная в первой части игры, даже если броня повреждена... Но если нападает пси-собака или контролёр, она понижается, показывая мне психическое здоровье игрока. Так и надо?!

То, с чего можно начать «тюнинг» программы Wine. Установка Wine

Хотите улучшить запуск программ в Wine? Первый мой совет: научитесь компилировать Wine из исходного кода! В случае, если у вас видеокарта nVidia, это почти ничего не изменяет: программы работают с той же скоростью - но в игре S.T.A.L.K.E.R. без патчей 1.004 и 1.005 в игре частично пропадает трава при перемещении героя, а в игре Morrowind неправильно показывается вода, если в игре включены пиксельные шейдеры. И это не исправляется никакими патчами: если вы любите игру Morrowind, вам придётся скомпилировать Wine вручную... Дело в том, что Mesa, свободная реализация библиотеки OpenGL, с которой обычно компилируется программа Wine из репозитария, не содержит часть функций, которая есть в несвободных реализациях этой библиотеки от nVidia и ATi. При этом скомпилированный вариант Wine с драйвером nVidia не заработает с ATi должным образом - и наоборот. Если у вас видеокарта Intel, или вы используете какой-нибудь свободный драйвер для видеокарты с поддержкой 3D-акселерации графики, компиляция ничего не изменит в работе игр. А если проприетарный драйвер от ATi... Ой! Бр-р-р... Лучше компилировать. Правда. Это исправляет много-много ошибок и замедлений в скорости работы игр.

Как осуществить мой первый совет? Устанавливаем зависимости. Если у вас Debian/Ubuntu, скомандуйте от имени суперпользователя в консоли:

apt-get build-dep wine

При этом должен быть загружен репозитарий исходных кодов программ - он для этого и нужен!

Затем:

fakeroot apt-get -b source wine

Ждём... Всё. Минус такого подхода в том, что сразу после релиза Wine специально подготовленные пакеты для компиляции из исходного кода могут быть не готовы, и придётся их сделать самому. Я напишу в приложении, как.

С дистрибутивами, программы в которые устанавливаются из пакетов в формате RPM, нужно скачать пакет src.rpm с Wine. Желательно, конечно же, для своего дистрибутива, но может подойти пакет и для любого другого! Я не пробовал... Достали? Командуем от имени пользователя:

rpmbuild -ba wine-1.1.44-fedora.src.rpm

Ждём... Всё.

Если ваш дистрибутив не работает ни с RPM, ни с DEB пакетами, я уверен, вы сами знаете, как скомпилировать Wine. Загрузить исходный код с главной страницы программы, распаковать его, и скомандовать:

./configure
make

И make install от имени суперпользователя!

Установится программа в /usr/local. А почему не в /usr? Если хотите в /usr, первую строчку команды нужно исправить так: ./configure -prefix=/usr. Если у вас несколько процессоров, или несколько ядер процессора, компиляцию программы можно ускорить при желании в несколько раз, исправив вторую команду на make -j2. Ну, или -j4, в зависимости от количества ядер процессора, которые вы хотите задействовать... Исходный код Wine готов к распараллеливанию потоков компиляции подобным образом...

Я всегда предпочитаю именно последний способ. С ним скрипт configure всегда сообщит мне, какой зависимости у меня нет (иногда появляются новые), и какая функция Wine не будет работать, если скомпилировать программу без неё. Или какую зависимость мне нужно обновить перед обновлением Wine. Так я могу получить самую последнюю версию Wine сразу, до того, как будет создан новый пакет для моего дистрибутива. А ещё мне приятно осознавать, что программа устанавливается с максимальной оптимизацией именно для моего оборудования.

А если у вас 64-битный дистрибутив? Тут уже не работает последний способ. Вам поможет вот это руководство: http://wiki.Winehq.org/WineOn64bit.

Читайте продолжение:

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

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

Wine + Photoshop = Дружба!

Q4Wine

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

Материал достаточно интересный и доходчиво написанный. Взял отсюда и разбил на 4 части:

http://zenitur.narod.ru/Wine.html

Единственное что, я обычно компилирую в /opt, например:

/opt/wine-1.0.1
/opt/wine-1.1.14

Сам wine - немаловажная программа в Linux! Почтовые клиенты, Офисы и прочее можно использовать нативное, но если речь идёт о различных обучающих программах и курсах, об энциклопедиях и т.п., то wine тут здорово выручает! И аналогов такого рода софта в Линуксе не найти :( А ведь не так редко попадаются действительно качественные и нужные продукты!

Да и тот же IE необходим вебмастеру для отладки :(

Так что, уменее запустить программу в wine - это не так уж мало. Wine не только из-за игр существует!

Кстати, вот-вот ожидается стабильная ветка Wine - 1.2.* ;)

PS спасибо автору за труд!

ПОжалуйста напиши подробно как запустить team fortress 2 комфортно через wine!Заранее благодарен!

Ну как-как, http://appdb.winehq.org/objectManager.php?sClass=version&iId=9901

Также выстави в winecfg во вкладке "библиотеки" библиотеку gameoverlayrenderer как "disabled".

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



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