Вопрос или проблема
Я пытался в течение нескольких часов заставить свою установку Wine работать безуспешно.
В данный момент я на Ubuntu 22.04 с установленным wine 6.0.3 (из официальных репозиториев Ubuntu) Каждый раз, когда я пытаюсь открыть что-либо, кроме встроенных программ Wine, я получаю либо
"0024:err:mscoree:expect_no_runtimes Процесс завершился с загруженной средой выполнения Mono."
(в Celeste 1.4)
или "0024:err:process:exec_process L"Z:\\home\\anthony\\Documents\\Games\\The Binding of Isaac Rebirth Repentance v1.7.8a\\isaac-ng.exe" не поддерживается в этой системе"
(в The Binding of Isaac)
Я довольно уверен, что сами программы не виноваты, так как мне удалось запустить их до того, как мне пришлось переустановить свою ОС по другим причинам.
Я уже гуглил эти проблемы и поэтому пытался
- переключить WINEPREFIXES с разными архитектурами (пробуя 32-битный wine и 64-битный wine)
- Переустановить wine через репозитории winehq
- Я даже попытался установить wine на чистую установку Ubuntu, чтобы убедиться, что моя ОС не виновата в этом
Есть ли у кого-нибудь идея, в чем может быть проблема? Любая попытка помочь будет очень признательна, спасибо заранее 😀
Дополнение: Итак, я послушал комментарий и установил wine-mono, теперь я получаю другие ошибки
для celeste: Необработанное исключение: System.TypeInitializationException: Инициализатор типа 'Celeste.Celeste' вызвал исключение. ---> System.DllNotFoundException: SDL2.dll сборка:<неизвестная сборка> тип:<неизвестный тип> член:(null) в (обертка управляемый-к-нативный) SDL2.SDL.INTERNAL_SDL_GetPlatform() в SDL2.SDL.SDL_GetPlatform () [0x00000] в <4c19a1a736204d189ba94c3bc07cd4ac>:0 в Celeste.Celeste..cctor () [0x00006] в <d7b2abb405ec4c97954549f0a02e4a41>:0 --- Конец трассировки внутреннего исключения --- [ERROR] ФАТАЛЬНОЕ НЕОБРАБОТАННОЕ ИСКЛЮЧЕНИЕ: System.TypeInitializationException: Инициализатор типа 'Celeste.Celeste' вызвал исключение. ---> System.DllNotFoundException: SDL2.dll сборка:<неизвестная сборка> тип:<неизвестный тип> член:(null) в (обертка управляемый-к-нативный) SDL2.SDL.INTERNAL_SDL_GetPlatform() в SDL2.SDL.SDL_GetPlatform () [0x00000] в <4c19a1a736204d189ba94c3bc07cd4ac>:0 в Celeste.Celeste..cctor () [0x00006] в <d7b2abb405ec4c97954549f0a02e4a41>:0
для Isaac(при запуске через ui): неправильный exe-формат для
для Isaac(при запуске через терминал): Приложение не могло быть запущено или с указанным файлом не ассоциировано ни одно приложение. ShellExecuteEx не удался: Файл не найден.
Сообщение об ошибке говорит вам, что отсутствует .NET Framework и его нужно установить.
Версия Wine для .Net – это Mono, описанная как:
Mono — это общедоступная и кросс-платформенная реализация .NET Framework. Wine может использовать сборку Mono для Windows для запуска приложений .NET.
Пакет называется wine-mono
и может находиться в вашем репозитории.
Если его нет, вы можете найти установщик wine-mono.msi на официальном сайте WineHQ. Но в этом случае вам также стоит установить последнюю стабильную версию Wine с WineHQ.
Ответ или решение
Введение
Если вы сталкиваетесь с проблемами при запуске приложений через Wine на Ubuntu 22.04, знайте, что эта проблема может быть решена. В этой статье мы шаг за шагом рассмотрим возможные причины проблем и методы их устранения, начиная с проверки совместимости Wine, установки необходимых компонентов и настройки среды.
Основные проблемы и их решения
-
Версия Wine и совместимость
- Убедитесь, что вы используете последнюю стабильную версию Wine. Ваша текущая версия — 6.0.3, что может быть недостаточно актуально для некоторых приложений. Рекомендуется установить последнюю версию Wine с официального сайта WineHQ.
- Для установки:
sudo dpkg --add-architecture i386 sudo apt update sudo apt install --install-recommends winehq-stable
-
Настройка WINEPREFIX
- Убедитесь, что вы создаете отдельные префиксы Wine для разных архитектур (32-битные и 64-битные) и не меняете их без необходимости.
- Для создания нового префикса:
WINEPREFIX=~/newprefix winecfg
-
Установка необходимых библиотек
- Ошибки, такие как
System.DllNotFoundException: SDL2.dll
, указывают на отсутствие библиотеки, необходимой для работы приложения. Убедитесь, что библиотеки SDL2 установлены. - Для установки SDL2 можно использовать:
sudo apt install libsdl2-2.0-0
- Ошибки, такие как
-
Установка Wine Mono
- Некоторые приложения могут требовать Wine Mono для работы с .NET. Вы уже устанавливали
wine-mono
, что является правильным шагом. - Убедитесь, что Wine Mono установлен корректно. Для этого можно попробовать переустановить его:
wget https://dl.winehq.org/wine/wine-mono/msi/wine-mono-current.msi msiexec /i wine-mono-current.msi
- Некоторые приложения могут требовать Wine Mono для работы с .NET. Вы уже устанавливали
-
Ошибки формата исполняемого файла
- Когда вы получаете сообщение об ошибке формата exe, это может означать, что вы пытаетесь запустить 64-битное приложение в 32-битной версии Wine или наоборот. Убедитесь, что архитектура вашего WINEPREFIX соответствует архитектуре запускаемого приложения.
-
Ошибки при запуске из терминала
- Если вы видите сообщение:
Application could not be started, or no application associated with the specified file. ShellExecuteEx failed: File not found.
, это может указывать на неподдерживаемый путь или неправильные права доступа к исполняемым файлам. Убедитесь, что путь к исполняемому файлу корректен и он имеет права на выполнение:chmod +x /path/to/your/executable.exe
- Если вы видите сообщение:
Заключение
Проблемы с Wine могут возникать по разным причинам, начиная от недостатка библиотек и заканчивая неправильными настройками среды. Применив предложенные шаги по устранению неполадок, вы сможете настроить Wine для работы с «Celeste» и «The Binding of Isaac». Помните, что обращение к сообществу WineHQ может также помочь вам получить дополнительную информацию и поддержку от опытных пользователей.