Как убрать ошибку Wine: Bad EXE format

Чаще всего эта проблема возникает, когда пытаешься запустить 32-битную программу на 64-бином Wine. Поэтому нам необходимо удалить текущий Wine и установить “правильный” – i386. Рассмотрим как это сделать в этой статье.

Хотя Debian и Ubuntu предлагают собственные пакеты Wine, они часто отстают на несколько версий. Чтобы максимально упростить установку последней версии Wine, WineHQ располагает собственным репозиторием Debian/Ubuntu. Если с более новой версией Wine возникнут проблемы, вы также можете установить более старую версию по своему выбору.

Репозиторий WineHQ предлагает пакеты только для AMD64 и i386. Если вам нужна версия для ARM, вы можете использовать пакеты Debian/Ubuntu.

Подготовка

  • Если ваша система 64-битная, включите 32-битную архитектуру:

    sudo dpkg --add-architecture i386

  • Запишите название вашего дистрибутива:
    найдите строку, содержащую либо UBUNTU_CODENAME, либо VERSION_CODENAME. Если присутствуют оба, используйте имя после UBUNTU_CODENAME.

    cat /etc/os-release

Добавить репозиторий

  • Загрузите и добавьте ключ репозитория:

    sudo mkdir -pm755 /etc/apt/keyrings
    wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key -

  • Добавьте репозиторий:
    Если вашего дистрибутива нет в списке, более старые пакеты могут быть доступны на сервере загрузки. Добавьте один репозиторий.

    Название дистрибутива Команда
    plucky
    Ubuntu 25.04
    sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/plucky/winehq-plucky.sources
    noble
    Ubuntu 24.04
    Linux Mint 22
    sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/noble/winehq-noble.sources
    jammy
    Ubuntu 22.04
    Linux Mint 21.x
    sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/focal/winehq-focal.sources
    forky
    Тестирование Debian
    sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/forky/winehq-forky.sources
    trixie
    Debian 13
    sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/trixie/winehq-trixie.sources
    bookworm
    Debian 12
    sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources
  • Обновите информацию о пакете:

    sudo apt update

Установить WINE

Установите один из следующих пакетов:

ВЕТВЬ Команда
Стабильная ветвь sudo apt install --install-recommends winehq-stable
Отделение развития sudo apt install --install-recommends winehq-devel
Промежуточная ветвь sudo apt install --install-recommends winehq-staging

В руководстве пользователя объясняются различия между ветвями.

Помощь

Иногда возникают проблемы с установкой Wine. Если вашей проблемы нет в списке, поищите на форуме или, если не найдёте ответа, задайте свой вопрос.

Отсутствующие зависимости

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

Сторонние репозитории

Пакеты WineHQ создаются и тестируются на чистой установке. Использование PPA или сторонних репозиториев может помешать установке Wine. Часто проблема заключается в том, что эти репозитории не являются мультиархитектурными. Требуемые 32- и 64-битные пакеты отсутствуют или не могут быть установлены параллельно. Репозиторий deb.sury.org известен своими проблемами.

Понизьте проблемные пакеты зависимостей до официальной версии.

KDE Неон

Пользователи Ubuntu 22.04 KDE Neon сообщают о проблемах с зависимостью libpoppler-glib8 . Решение — понизить версию этого пакета до официальной версии Ubuntu. sudo apt install libpoppler-glib8:{i386,amd64}=22.02.0-2ubuntu0.3

Бэкпорты

Другой причиной может быть использование бэкпортов. Более новая 64-битная версия библиотеки уже установлена, а 32-битная — нет. Эти пакеты имеют более низкий приоритет, поэтому не будут установлены автоматически. Решение — вручную установить отсутствующий 32-битный пакет из бэкпортов.

FAudio

В более старых версиях Wine (до версии 6.21) FAudio является зависимостью. Эти пакеты отсутствуют в Ubuntu 18.04. Их можно загрузить с Open Build Service . Для Debian 10 эти пакеты доступны в виде бэкпортов.

Ключевые проблемы Winehq

  • Ключ репозитория WineHQ был изменен 19 декабря 2018 г.

    Если вы загрузили и добавили ключ до этого времени, вам потребуется загрузить и добавить новый ключ и запустить его, sudo apt updateчтобы принять изменения репозитория.

  • Apt-key теперь устарел

    Ранее для добавления ключа Wine использовался apt-key . Если вы получили это предупреждение, удалите ключ Wine, выполнив команду:

    sudo apt-key del "D43F 6401 4536 9C51 D786 DDEA 76F1 A20F F987 672F"

    И удалите строку о репозитории WineHQ из /etc/apt/sources.list(.d/*) .

Выполняется зеркальная синхронизация?

Если при попытке установить пакет из WineHQ вы получаете сообщение об ошибке, содержащее строку Mirror sync in progress?, скорее всего, проблема в нём. Синхронизировать нужно много пакетов, и это может занять много времени.

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

Моей версии Debian/Ubuntu нет в списке

Если версия Debian/Ubuntu больше не поддерживается, новые пакеты Wine не собираются. И репозиторий больше не будет отображаться в списке выше. Поскольку новые версии не собираются, добавлять репозиторий WineHQ не требуется. Просто скачайте и установите четыре deb-пакета WineHQ .

Обратите внимание, что эти пакеты больше не обслуживаются и не поддерживаются.

Примечания

  • Пункты меню не создаются для встроенных программ Wine (winecfg и т. д.). При обновлении пакетов дистрибутива Wine, в которых они были добавлены, они будут удалены. Вы можете создать их заново самостоятельно с помощью редактора меню.

  • Файлы Wine устанавливаются в/opt/wine-<branch>/

  • WineHQ не предлагает пакеты wine-gecko и wine-mono . При создании нового префикса wineprefix вам будет предложено загрузить эти компоненты. Для обеспечения максимальной совместимости рекомендуется нажать «Да» . Если загрузка не работает, следуйте инструкциям на вики-страницах Gecko и Mono , чтобы установить их вручную.

  • Начиная с Wine 5.7, пакеты WineHQ имеют необязательную настройку debconf, позволяющую включить CAP_NET_RAW, чтобы приложения, которым необходимо отправлять и получать необработанные IP-пакеты, могли это делать. Эта настройка отключена по умолчанию, поскольку она представляет потенциальную угрозу безопасности, и подавляющему большинству приложений эта возможность не нужна. Пользователи приложений, которым она необходима, могут включить CAP_NET_RAW после установки Wine, запустив программу dpkg-reconfigure wine-<branch>-amd64 wine-<branch> wine-<branch>-i386 и ответив «да» на три вопроса.

  • Регистрация binfmt_misc не добавлена. man update-binfmtsЕсли вы хотите сделать это вручную, обратитесь к документации вашего дистрибутива по параметру update-binfmts ( ).

  • Полная установка Wine на 64-битной системе состоит из четырех пакетов.

    • winehq-<branch>Этот пакет обеспечивает доступность команды wine во всей системе.

    • wine-<branch>Этот пакет имеет следующие два пакета в качестве зависимостей и обеспечивает работающую установку Wine.

    • wine-<branch>-amd6464-битная часть Wine.

    • wine-<branch>-i38632-битная часть Wine.

    Разделив Wine на разные пакеты, можно устанавливать разные ветки рядом.

    Например: используйте стабильную версию Wine в качестве версии Wine по умолчанию и установите версию Wine staging для тестирования других программ.

    Установить стабильную версию Wine:

    sudo apt install --install-recommends winehq-stable

    Установка Wine:

    sudo apt install --install-recommends wine-staging(Обратите внимание на отсутствие hq после слова wine )

    Запустите программу с Wine stable :

    wine program.exe

    Запустите программу с помощью Wine staging :

    WINEPREFIX=~/wine-staging /opt/wine-staging/bin/wine program.exe

    (Рекомендуется присвоить каждой ветке Wine собственный wineprefix.)

  • В репозитории есть несколько версий Wine. Последняя версия установлена ​​по умолчанию. Обычно рекомендуется последняя версия. Однако может потребоваться более старая версия. apt policy winehq-<branch>Для просмотра списка доступных версий используйте кнопку .

    Установите более старую версию по вашему выбору с помощью

    sudo apt install winehq-<branch>=<version>

    Например:

    sudo apt install winehq-staging=7.12~bookworm-1

    При понижении версии пакетов Wine необходимо понизить версию всех четырех пакетов Wine.

    sudo apt install winehq-staging=7.12~bookworm-1 wine-staging=7.12~bookworm-1 wine-staging-amd64=7.12~bookworm-1 wine-staging-i386=7.12~bookworm-1

Установка без интернета

Чтобы установить Wine на машину без доступа в Интернет, вам необходимо иметь доступ ко второй машине (или виртуальной машине) с подключением к Интернету для загрузки пакета WineHQ .deb и его зависимостей.

На машине с доступом в Интернет добавьте репозиторий WineHQ и запустите apt update, как описано выше.

Далее кэшируем только те пакеты, которые необходимы для установки Wine, не извлекая их:

sudo apt-get clean
sudo apt-get --download-only install winehq-<branch>
sudo apt-get --download-only dist-upgrade

Скопируйте все файлы .deb из /var/cache/apt/archives на USB-накопитель:

cp -R /var/cache/apt/archives/ /media/usb-drive/deb-pkgs/

Наконец, на машине без интернета установите все пакеты с флеш-накопителя:

cd /media/usb-drive/deb-pkgs sudo dpkg -i *.deb

Источник


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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Unlix.ru © Все права защищены 2015 - 2025

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!