Вино Wow64 с 32-битной установкой

Вопрос или проблема

Ubuntu 20.10: wine-6.2 с WOW64 и установкой 32-х или 64-битных программ

При создании 64-битного префикса wine создается структура каталогов с “Program Files (c86)”.

Я могу запускать в нем 32-битные программы, но всегда получаю предупреждения, что это может привести к проблемам, потому что я использую 64-битный префикс. Хотя никакой явной ошибки нет.

Кроме того, когда я устанавливаю 32-битную программу в этот префикс, должен ли я делать это с помощью wine или wine64? Если я использую wine, будет ли использоваться “Program Files (x86)” или “Program Files”, зарезервированные для 64-битных программ на 64-битной архитектуре?

Совершенно неясно, как использовать 64-битную архитектуру с 32-битными приложениями/установками. Дело в том, что некоторые программы, которые я хочу установить, имеют 64-битный установщик, но используют 32-битные загрузчики и обычно устанавливаются в “Program Files (x86)”.

Моя цель — использовать один префикс для всех приложений, которые мне нужны. Это в основном будет использоваться для игр.

Как запустить префикс для WOW64, совместимый с 32-битными и 64-битными приложениями?

Как лучше всего установить всё необходимое в этот единственный префикс, без этих предупреждений о 64-битном префиксе?

У меня нет выбора, кроме как использовать 64-битный префикс. Мой префикс должен быть в HOME/user/wine64/

28/02/21

Я выяснил, что мне нужно работать с wine64, чтобы запускать exe в созданном мною x64-префиксе. Даже если это 32-битный, как установка Steam, например.

‘WINEARCH=win64 WINEPREFIX=/$HOME/.local/share/wineprefixes/Win64DXVK wine64 explorer’

Я новичок, но для меня это похоже на то, что winetricks запускает некоторые команды с wine вместо wine64, просто потому что это 32-битные приложения. Так что мой вопрос в том, существует ли версия winetricks, которая запускает всё с wine64 вместо wine?

Я ищу способ работать напрямую через wine64, потому что winetricks дают мне такие сообщения об ошибках о WINEARCH 64.

WINEARCH=win64 WINEPREFIX=/$HOME/.local/share/wineprefixes/Win64 winetricks

Когда я работаю непосредственно с префиксом, мне удается как-то всё настроить. Но мне было бы легче, если бы я мог использовать winetricks в полном окружении WOW64.

Я столкнулся с той же проблемой, когда учился устанавливать более старые версии Wine ВРУЧНУЮ, не обращая внимания на репозитории Apt-Get и всё это. Процедура ниже.

Установка более старых/других версий Wine, отличных от последних из репозиториев в системе Debian/Ubuntu, — это настоящая головная боль.

План Б: подумайте о переходе на Manjaro, если это возможно для вас. Почему? Потому что версия Wine для Manjaro входит в один пакет, и вы устанавливаете её одной командой:

sudo pacman -U /local_path/wine-staging-5.1-1-x86_64.pkg.tar.zst
или, если вам не хватает зависимостей..
sudo pacman -Sy /path/wine...
(Я думаю, это команда... я сейчас не в Manjaro,
команда Sy загрузит для вас зависимости
БЕЗ полной системной обновления, только те пакеты, которые вам нужны...
pacman -U эквивалентен sudo dpkg -i, для ручной установки)

Если переход на Arch/Manjaro НЕ является для вас возможностью, приведены ниже шаги для ВРУЧНУЮ установки более старых версий Wine на дистрибутивах на основе Debian/Ubuntu:

  1. Допустим, вы хотите установить Wine версии 4.1 (одна из последних версий Wine перед тем, как размер Wineprefix вырос с 100 МБ до 600 МБ, без каких-либо дополнительных преимуществ и избегания обычных ошибок последних 10 лет…)
    Посетите https://dl.winehq.org/wine-builds/
    и скачайте все пакеты, которые имеют в названии 4.1 (они должны иметь ту же дату в названии)

В случае Wine 4.1 (версия, которую я нашел оптимальной) вам понадобятся следующие пакеты. Вам всегда будет нужно ПЯТЬ пакетов в общей сложности.

winehq-staging_4.1_buster_amd64.deb
wine-staging_4.1_buster_amd64.deb
wine-staging_4.1_buster_i386.deb
wine-staging-amd64_4.1_buster_amd64.deb
wine-staging-i386_4.1_buster_i386.deb
  1. Порядок установки. Здесь начинается трудная часть, после первого раза будет легче. Сначала вы устанавливаете самый большой i386 пакет, всегда. Затем устанавливаете маленький i386 пакет. Затем устанавливаете большой amd64 пакет и маленький amd64 пакет. Последним устанавливается winehq (который есть только в форме amd64)

Ниже приведена копия моей истории bash с порядком команд, которые я использовал для этого в кратчайшие сроки.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo dpkg -i /path/wine-staging-i386_4.1_buster_i386.deb
sudo apt-get install -f
sudo dpkg -i /path/wine-staging_4.1_buster_i386.deb
sudo apt-get install -f
sudo dpkg -i /path/wine-staging-amd64_4.1_buster_amd64.deb
sudo apt-get install -f
sudo dpkg -i /path/wine-staging_4.1_buster_amd64.deb
sudo apt-get install -f
sudo dpkg -i /path/winehq-staging_4.1_buster_amd64.deb
sudo apt-get install -f
sudo apt-get update
...
winecfg    <используется для создания начального префикса Wine>
<используйте их ниже, чтобы убедиться, что у вас установлены все библиотеки>
...
WINEPREFIX=~/.wine32 WINEARCH=win32 winecfg  <для проверки, работает ли 32-битная версия>
WINEPREFIX=~/.wine64 WINEARCH=win64 winecfg  <для проверки, работает ли 64-битная версия>
<вы не должны видеть в терминале ошибок вида
"но используется неправильная архитектура" >

Обратите внимание, что каждый раз после установки пакета необходимо запускать

sudo apt-get install -f  

что гарантирует, что индивидуальные зависимости каждого пакета установлены и сконфигурированы до установки следующего пакета. (это нужно только в первый раз, когда вы это делаете… после этого можно сохранить все эти зависимости в резервном месте и установить их все сразу с помощью sudo dpkg -i /path/*.deb )

  1. Иногда, и я не понимаю, почему это происходит, вы не сможете использовать Wine 64, или не сможете использовать Wine 32, одно из двух. Если это произойдет, просто переустановите один из больших пакетов Wine вновь (в зависимости от того, что вам нужно — amd64 или i386)

    sudo dpkg -i /path/wine-staging-amd64_4.1_buster_amd64.deb

Очень жаль, что Wine распределяется таким образом в системе Debian/Ubuntu, это чрезмерно сложный процесс с большим количеством потерянного времени. То, как это делается в Manjaro, должно стать официальным способом распространения Wine в будущем.

Ответ или решение

Использование Wine WOW64 с установкой 32-битных приложений на Ubuntu 20.10

Wine — это программное обеспечение с открытым исходным кодом, позволяющее запускать приложения, разработанные для Windows, на UNIX-системах, таких как Linux. Особенностью Wine является поддержка как 32-битных, так и 64-битных приложений, что может создать некоторую путаницу для пользователей, пытающихся настроить оптимальное окружение для своих нужд. Ваша ситуация касается использования префикса WOW64 в Wine, который поддерживает установку и запуск как 32-битных, так и 64-битных программ.

Теория

WOW64 (Windows-on-Windows 64-bit) — это эмуляционный слой, позволяющий запускать 32-битные приложения в 64-битной операционной системе Windows. Wine реализует аналогичный подход, позволяя вам создать “префикс” Wine, который может обрабатывать и 32-битные, и 64-битные приложения. Это делается путем создания специальной структуры каталогов внутри префикса, где присутствуют директории “Program Files” для 64-битных приложений и “Program Files (x86)” для 32-битных. Однако, иногда в процессе установки или запуска программ могут появляться предупреждения, связанные с архитектурой префикса, что может вызвать у пользователя беспокойство.

Пример

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

Применение

Для создания и управления такими префиксами важно понимать несколько ключевых моментов:

  1. Создание WOW64 префикса: Используйте переменные окружения WINEARCH=win64 и укажите путь к префиксу через WINEPREFIX, например:

    WINEARCH=win64 WINEPREFIX=$HOME/.wine64 winecfg

    Это создаст 64-битный префикс, который также будет поддерживать 32-битные приложения.

  2. Установка приложений: Для установки 32-битных приложений используйте команду wine, а не wine64. Wine автоматически определит нужную архитектуру и поместит файлы в правильные каталог типа "Program Files" или "Program Files (x86)".

  3. Запуск приложений: Вы можете запускать как 32-битные, так и 64-битные приложения из одного и того же префикса без необходимости беспокоиться о вручную управлении архитектурой.

  4. Использование winetricks: Если во время работы с winetricks возникают ошибки из-за архитектурной несовместимости, стоит убедиться, что все скрипты выполняются на базе wine64 в соответствующем окружении WOW64. Попробуйте переустановить сами скрипты или проверить их совместимость с вашим текущим окружением Wine.

  5. Решение проблем и оптимизация: Если вы продолжаете сталкиваться с ошибками, попробуйте пересоздать префикс с нуля, установить отсутствующие библиотеки или зависимости через winetricks, или даже перейти на более стабильную версию Wine, если текущая нестабильна.

Итоговая настройка такого префикса обеспечит вам гибкость и одновременную совместимость с большинством приложений, которые вы планируете использовать для своих задач, включая игры, которые часто требуют широкого спектра зависимостей и конфигураций. Однако, несмотря на обещания полного WOW64-соответствия, некоторые специфические настройки могут потребовать ручной корректировки и индивидуального подхода.

Оцените материал
Добавить комментарий

Капча загружается...