Директ Коммандер на Linux: Всё!

Директ Коммандер на Linux: Всё!

Месяц назад я рассказывал, как запустил Директ Коммандер на Linux. Схема работала, но с двумя оговорками:

  • Официальный установщик зацикливался, поэтому программу приходилось доставать из него архиватором
  • Автообновление не работало, и обновляться надо было руками.

Обе оговорки снялись. Коммандер ставится официальным установщиком и обновляется сам, как на Windows.

Что изменилось

Я отправил результаты тестов в WineHQ AppDB. Это база, где люди отмечают, какие Windows-программы и как работают под Wine. До меня там висела запись про Коммандер с рейтингом Garbage, то есть «не работает вообще». Мою запись с рейтингом Gold одобрили, а модератор попросил завести отчёт об ошибке в багтрекере Wine.

Я пошёл искать, нет ли такого отчёта уже. Сначала разобрался, как установщик проверяет, запущена ли программа, и нашёл жалобу на другой установщик с той же петлёй. Ниточка привела к PowerShell в Wine. Отчёт нашёлся с готовым решением в комментариях, висел с апреля 2026.

Причина зацикливания такая. Установщик перед копированием файлов спрашивает у системы, не запущен ли Коммандер. Спрашивает сначала через PowerShell, а в Wine вместо PowerShell стоит заглушка, которая на любой вопрос отвечает «да». Установщик слышит «да, программа запущена» и просит её закрыть. Закрывать нечего, он спрашивает снова, получает то же «да», и так по кругу.

Директ Коммандер на Linux: Всё!

Поэтому в первой статье установщик ломался везде, включая платный CrossOver: заглушка у всех одна.

Решение: запретить Wine запускать заглушку. Тогда установщик понимает, что PowerShell нет, проверяет запущенные программы другим способом, получает честный ответ «не запущена» и ставит программу.

Почему заодно заработало обновление

Встроенное обновление Коммандера делает ровно то же самое: скачивает новый установщик и запускает его при закрытии программы. Раньше этот установщик упирался в ту же заглушку и молча умирал. Со стороны это выглядело так: программа обещает обновиться, закрывается и при следующем запуске остаётся на старой версии.

Если запускать Коммандер с отключённой заглушкой, установщик обновления наследует эту настройку и проходит. Проверил на живом обновлении: закрыл 3.156.3, открыл 3.158.1, все клиенты и кампании на месте.

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

Директ Коммандер на Linux: Всё!

Как поставить

Понадобится Wine от WineHQ, команды под свою систему есть на сайте WineHQ. Игровые сборки, которые по умолчанию предлагает Bottles, не подойдут: на них Коммандер не открывает окно.

Скачайте установщик Коммандера для Windows с официальной страницы в папку загрузок, подойдёт и 64-, и 32-битный. Затем запустите три команды:

git clone https://github.com/cpa-jedi/direct-commander-linux.git cd direct-commander-linux ./install-wine.sh

Скрипт запишет настройку в Wine и запустит официальный установщик. Ярлык «Direct Commander» с родной иконкой Wine сделает сам, в меню и на рабочем столе. Дальше обновления ставятся сами.

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

wine reg add 'HKCU\Software\Wine\DllOverrides' /v powershell.exe /d '' /f wine "Direct Commander-3.158.1-x64.exe"

На рабочем столе рядом с нормальным ярлыком появится ещё файл Direct Commander.lnk. Это виндовый ярлык от установщика, на Linux он не нужен, его можно удалить.

Если вы ставили по первой статье

Работает и так, переделывать не обязательно. Но со старой схемой обновляться приходится руками, а Яндекс периодически отключает от API старые версии. Как перейти и сохранить кампании, расписано в README репозитория, в разделе «Если ставили по старой инструкции».

Какой вывод?

Когда что-то ломается одинаково везде, это подсказка: у всех вариантов есть общая сломанная часть. И багтрекер стоит открывать до того, как перебирать настройки. Я долго перебирал настройки, а когда стало понятно, что искать, ответ нашёлся за минуту.

Технический разбор с логами и тем, как именно установщик принимал решение, лежит на Хабре. Скрипты на GitHub.

Если будете повторять и упрётесь во что-то своё, пишите: @cpa_jedi.

Пишу про то, как Директ устроен изнутри, и про LLM в работе аналитика и контекстолога в телеграм-канале t.me/cpa_jedi_notes.

11