Как запустить Директ Коммандер на Linux: официально нельзя, но можно

Я занимаюсь контекстной рекламой и веб-аналитикой больше 9 лет: фрилансил, работал инхаус и даже поработал в бигтехе на стороне площадки.

Как запустить Директ Коммандер на Linux: официально нельзя, но можно

Недавно я перевёл рабочий ноутбук на Linux Mint. Переезд прошёл на удивление спокойно: браузеры, таблицы, редакторы, питон, мессенджеры встали и работают. Кроме одной самой любимой программы!

Директ Коммандер выходит только под Windows и macOS и всё это время смотрел на меня исподтишка, заставляя переключаться обратно на венду. Казалось бы, можно забить, есть же веб-интерфейс, но если вы хоть раз правили пятьсот объявлений или собирали большую структуру руками через интерфейс Директа, вы понимаете, почему именно Коммандер держал меня одной ногой на винде. Скачки между осями меня добивали, и я решил его запустить на линух.

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

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

Почему обычная установка не работает

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

Как запустить Директ Коммандер на Linux: официально нельзя, но можно

«Не удалось закрыть Direct Commander. Пожалуйста, закройте Direct Commander вручную и нажмите Повтор, чтобы продолжить».

Никакого Коммандера при этом не запущено, его в системе ещё нет. Установщик проверяет, не открыта ли программа, под Wine проверка ложно срабатывает, и установка зацикливается намертво.

Дальше пошёл стандартный набор действий человека, который не хочет верить, что всё настолько тупо. Я убивал процессы, переименовывал установщик, запускал из разных папок, менял версию Windows в настройках, перебирал сборки Wine, создавал чистое окружение с нуля. Ошибка повторялась один в один, на том же месте.

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

Как запустить Директ Коммандер на Linux: официально нельзя, но можно

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

И предупреждение для тех, кто будет гуглить. В выдаче полно статей, где советуют сначала поставить рантайм Adobe AIR, а потом Коммандер. Коммандер давно не работает на Adobe AIR, эти статьи устарели на несколько лет. Я на них потерял вечер.

Что оказалось внутри

Установщик Коммандера это обычный самораспаковывающийся архив и его можно открыть обычным архиватором.

Внутри лежит готовая программа на Electron. Если коротко, Electron-приложение по сути браузер, в который завернули интерфейс и логику. На нём сделаны Slack, VS Code, Notion и половина того, чем вы пользуетесь каждый день.

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

Значит, установщик выбрасываем, а программу достаём из него руками. Осталась одна деталь, без которой ничего не взлетит, и вот её я нашёл далеко не сразу.

Деталь, которая всё решает

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

Так вот: на игровой сборке Коммандер не запускается. Процесс стартует, отрабатывает инициализацию и молча умирает, когда пытается нарисовать первое окно. Ни окна, ни ошибки, ни падения. Просто тишина.

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

Я потратил вечер и миллион нервных клеток, перебирая настройки, версии Windows, видеокарту и флаги запуска. Крутил ручки на приборной панели, пока проблема сидела в двигателе.

Как запустить Директ Коммандер на Linux: официально нельзя, но можно

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

Установку всего я завернул в скрипт, чтобы не повторять руками. Он создаёт окружение, распаковывает установщик, раскладывает файлы, вытаскивает иконку из exe и делает ярлык в меню приложений.

Понадобится три вещи.

Wine от WineHQ, а не из репозитория дистрибутива, там лежат заметно более старые версии. Команды установки под свой дистрибутив берите на сайте WineHQ, это пять строк.

Установщик Коммандера для Windows с официальной страницы. Скачайте в папку загрузок (Downloads) и не запускайте, он нужен только как архив.

Три команды:

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

Всё. Через минуту Коммандер появится в меню приложений с родной иконкой.

Иконка Директ Коммандера справа сверху
Иконка Директ Коммандера справа сверху

Повторный запуск скрипта со свежим установщиком работает как обновление: файлы приложения заменяются, кампании и авторизация остаются на месте.

Если чужие скрипты вы не запускаете принципиально, в README репозитория тот же путь расписан по шагам, командами, которые видно глазами. Там же вариант для тех, у кого уже стоит Bottles, графическая обёртка над Wine: ставить её ради Коммандера смысла нет, но если она есть, можно и через неё.

Что работает

Я гонял Коммандер несколько дней на боевых клиентских аккаунтах и вот что получилось:

  • авторизация, загрузка клиентов, кампаний, групп, объявлений и фраз;
  • правки и отправка на сервер, баллы API тратятся как положено;
  • экспорт кампании в CSV и XLSX, файлы нормально открываются в LibreOffice;
  • импорт из файла и из буфера обмена;
  • загрузка картинок с диска, вместе с превью и кадрированием;
  • РК для РСЯ наравне с Поиском редактируются и отправляются, всё штатно.

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

Интерфейс рисуется без артефактов и тормозов, по ощущениям это обычное приложение. Шрифты даже приятнее, чем в виндовой версии, потому что подхватываются системные.

Что не работает

Автообновление. И это стоит объяснить, потому что это красное окно выглядит настораживающе.

Как запустить Директ Коммандер на Linux: официально нельзя, но можно

Коммандер фоном скачивает свежий установщик, все 134 Мб и, при закрытии программы, пытается поставить его в тихом режиме. Установщик упирается в ту самую проверку «приложение уже запущено», а показывать диалог ему в тихом режиме запрещено, поэтому он умирает молча. Программа при этом закрывается и обратно не поднимается.

Со стороны это выглядит так, будто Коммандер сам себя закрыл и сломался. Ничего не сломалось, он просто сходил обновиться и не смог.

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

Следить за версиями всё же надо: Яндекс периодически поднимает минимальную версию и отключает от API тех, кто не обновился.

Кому это подойдёт, а кому нет

Если Коммандер ваш основной инструмент и вы сидите в нём весь рабочий день, надёжнее держать виртуалку с Windows. Ресурсов она съест больше, зато совместимость полная и обновления штатные.

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

Подробный разбор с логами, тупиками и одним красивым ложным следом лежит на Хабре. Скрипты установки, обновления и удаления на GitHub, там же в README собраны типовые проблемы.

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

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

11