Хитрости и трюки при использовании Wine

Всем привет! Прочел статью про Основы работы с Wine для начинающих, оказалось, что там далеко не все тонкости. Поэтому написал этот пост как дополнение тому. В данном посте в основном вольный перевод оф. документации, а так же несколько своих и чужих хитростей при работе с вайн. Скорее всего данный пост будет интересен новичкам и обычным пользователям GNULinux. Тем не менее добротные советы от специалистов не будут лишними.

Что такое вайн думаю объяснять нет смысла. Хочу лишь показать несколько трюков при работе с ним.

Содержание

Префиксы

С их помощью вы можете устанавливать приложения именно туда куда вы их хотите установить, а не в дефолтный .wine. Даже если что то пойдет не так, достаточно удалить тот префикс, в котором произошла ошибка, при этом все другие приложенияпрефиксы (предположим, что они настроенные) не пострадают.

То есть каждый созданный вами префикс можно рассматривать как отдельный wine – он независим от других префиксов. Или, для еще большей простоты, воспринимайте каждый созданный префикс, как отдельно установленную винду.

Теперь немного практики:
Сейчас мы создадим папку Gamez, в ней мы создадим префикс lib в который установим несколько библиотек. Эти библиотеки все равно пригодятся потом, поэтому пусть кешируются.

Последней командой мы опять вызвали окно конфигуратора wine. Просто перейдите на вкладку «Библиотеки» и убедитесь, что все установилось. После этого выполните:

Откроется конфигуратор wine (не из префикса), проверьте ту же вкладку. Видите! Здесь никаких библиотек. Значит он цел и невредим.

Как установить несколько разных версий wine?

Для решения этой задачи придется собирать wine из исходников. При сборке просто используем префикс для дефолтной установке. Примерно как здесь:

AppDB

Обязательно используйте appdb для поиска информации по установке приложения, возможно стаф, который вы устанавливаете, уже установили и расписали все подводные камни.

Наводим порядок в домашнем каталоге

Если вы любите поиграть, то вероятно ваш /home раздел забит сейвами и прочими файлами игр. Избавиться от этого всего дела, не в ущерб можно так:

Замените стандартный путь к моим документам, на желаемое место для хранения сейвов. У меня, к примеру, этот путь ведет в папку с игрой.

Использование последних версий wine

Wine такая штука, чем новее тем лучше! С помощью следующей команды вы всегда будете иметь последнею версию wine (для Ubuntu-подобных дистрибутивов):

После выполнения этих команд ищите последнею версию wine в synaptic.

Установка winetricks

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

Как установить MSI файл?

Это можно сделать двумя способами:

Альтернативный способ:

The file foo.exe is not marked as executable… — Что это значит?

Эта ошибка происходит потому что на exe файле стоит запрет на выполнение. Для файла на вашей ФС эта команда должна исправить положение:

Если же файл находится на диске, то должна помочь вот эта команда:

Как вывести содержимое отладки в отдельный файл?

Как отключить «crash» диалог?

Если вы используете префиксы, не забудьте в команде указать путь к префиксу

После запуска приложенияигры, wine ругается и ничего не запускает. Что делать?

Для начала изучите логи, обычно в них все написано. Ниже я приведу самые популярные ошибки:

MFC40.DLL : через winetricks установи mfc40 (Microsoft Foundation Classes from Visual C++ 4).
MFC42.DLL, MSVCP60.DLL : через winetricks установи vcrun6 (MS Visual C++ 6 sp4 libraries: mfc42, msvcp60, msvcrt).
MFC71.DLL, MSVCP71.DLL : через winetricks установи vcrun2003 (MS Visual C++ 2003 libraries: mfc71,msvcp71,msvcr71).
MFC80.DLL, MSVCP80.DLL : через winetricks установи vcrun2005 (MS Visual C++ 2005 libraries: mfc80,msvcp80,msvcr80).
MFC90.DLL, MSVCP90.DLL : через winetricks установи vcrun2008 (MS Visual C++ 2008 libraries: mfc90,msvcp90,msvcr90).
MDAC : через winetricks установи mdac27 (MS MDAC 2.7).

Мое приложение работает, но текстовые поля ведут себя странно

Проанализируйте дебаг wine после запуска приложения, если видите что ругается на RICHED20.DLL, то доустановите через winetricks следующею библиотеку: riched20.

После запуска в консоль выводятся fixme сообщения. Что это?

Вы можете просто их игнорировать, это информация для разработчиков.

Что делать если приложению необходим .NET фреймворк?

Через вайнтрикс можно установить 1 или 2 фреймворк. Как альтернатива использовать mono. Если же приложение требует 3 или 4 фреймворк, то скорее всего оно работать не будет (хотя 3 и даже 3.5 доступен в меню winetricks). Ждем пока решат эту проблему.

Игра которую я пытаюсь установить защищена от распространения возможно ли её установить?

Смотри список copy protection, которые работают.

Что делать если приложение требует IE?

Wine использует по умолчанию ядродвижок Gecko – это то же, что и на Firefox. Поэтому можно через winetrikcs доустановить gecko(если его нет) иили fakeie6.

Если же это не помогло, попробуйте поменять версию windows на win2k и установить через winetricks ie6, ie7 или ie8.

Как включить сглаживание шрифтов в wine?

Если ваша версия выше чем 1.1.12 вы можете использовать winetricks и выбрать один из трех вариантов сглаживания: fontsmooth-grayfontsmooth-rgb или fontsmooth-bgr.

После выхода из игры не восстанавливается разрешение экрана

Должно помочь:

Как попасть в реестр wine?

Если используются префиксы укажите путь в команде.

Нуждается ли wine в отдельной установке драйверов?

Нет. Wine – это не эмулятор компьютера, он лишь переводит вызовы Windows API в понятные линуксу команды.

Безопасно ли запускать wine от root?

Никогда не запускайте wine от root пользователя!!!

Если это уже случилось измените владельца ~./wine директории.

Техника безопасности при использовании wine

Вот несколько советов, которые помогут вам повысить безопасность:

  • Никогда не запускайте программы с подозрительных сайтов
  • Никогда не используйте root пользователя для запуска приложений!
  • Используйте антивирусный сканер для запускаемых приложений, например ClamAV. Или хотя бы проверяете экзешники на virustotal
  • Попробуйте удалить wine диск Z:, который указывает по умолчанию на корневой каталог. В качестве обходного пути запускать программы из ~/.wine/drive_c директории.
  • Используйте виртуальную машину для запуска и проверки подозрительных приложений.

Файл .xsession-errors забивает мусором все дисковое пространство!!! Что делать?

Сохраните следующий скрипт:

Добавьте его в автозагрузку, и установите следующий пакет (он необходим для работы скрипта).

Делаем «песочницу» для wine (рецепт от drBatty)

*1) создаём юзера
2) меняем права на домашние каталоги на 700
*3) прописываем команду в sudoers (visudo)
первый_юзер имя_компа=(второй_юзер) NOPASSWD: /программа_с_полным_путём
4) у первого юзера прописываем в автозагрузку DE команду xhost +local: второй_юзер
5) в ярлык для запуска программы пишем:

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

Любите модные вещи? Тогда посетите fred perry бутик, сразу станете модником!