Близзард любит часто обновлять клиент для запуска, установки и обновлений своих игр. Если Вы запускаете Battle.net через Wine под Linux, то вполне возжно приложение вылетит с ошибками после таких обновлений.
Официально Близзард не поддерживает ОС Linux, поэтому на форумах компании Вы вряд ли найдете ответ. После просмотра кучи разных советов и трюков, на различных ресурсах, в том числе и иностранных, нашелся оптимальный рабочий вариант.
1. Обновите wine
~$ sudo dnf update wine* в системах семейства RHEL/Centos/Fedora
~$ sudo apt-get install wine* в системах семейства Debian/Ubuntu/Mint
2. В стартовом меню Wine -> Wine Configuration -> Libraries добавляем следующие библиотеки:
— api-ms-win-crt-heap-l1-1-0
— api-ms-win-crt-locale-l1-1-0
— api-ms-win-crt-runtime-l1-1-0
— api-ms-win-crt-stdio-l1-1-0
— ucrtbase
— vcruntime140
На текущий момент Battle.net обновление 1.6.0, версия 8265, полет нормальный. Приложение запускается, все функции работают.
Версия 8293, полет нормальный
Обновление 1.8.1 версия 8657, полет нормальный.
Обновление 1.8.3 версия 8965, всё работает
Обновление 1.8.5 версия 9093, всё работает
Обновление 1.8.6 версия 9262, всё работает
Обновление 1.9.1 версия 9526, полет нормальный.
Обновление 1.9.3 версия 9665, полет нормальный.
Обновление 1.10.0 версия 9766, всё работает
Иногда возникает ошибка, при которой Battle.net Launcher вообще не запускается! Это связано с непонятным поведением Battle.net агента. Он не завершает свои процессы после закрытия приложения. Решение достаточно простое.
Найдем эти процессы
ps aux|grep -i batt
Увидим примерно следующее
Нам остается только убить все процессы используя их PID’ы. Чтобы не вводить все перечисленные номера процессов, а у Вас их может быть и больше, предлагаю небольшой скрипт.
Чтобы никто не пугался, объясню ход выполнения скрипта.
Находятся все процессы, в названии и/или пути которых присутствует слово battle, кроме процесса grep. Второй столбец с номерами отделяется от остальной информации и помещается в файл to_kill. Затем команда kill убивает процессы номера, которых содержит файл to_kill. Затем он удаляется.
Создайте файл, например kill.agent.sh, сделайте его исполняемым, скопируйте в него вышеприведенный код. Теперь его можно запускать для очиски старых процессов Battle.net агента.
touch kill.agent.sh
chmod +x kill.agent.sh
./kill.agent.sh
Обновление 1.11.2 версия 10016, всё работает
Обновление 1.11.3 версия 10047, всё работает
Долго не обновлял комментарии.
На сегодняшний день:
Fedora 28
wine 3.14
Battle.net Обновление 1.12.0 версия 10155, всё работает
wine 3.17
Battle.net Обновление 1.12.6 версия 10839, всё работает
wine-4.0-1.fc28.x86_64
Обновление 1.14.1 версия 11144 — работает
Для свежего Battle.net понадобилась еще одна библиотека — api-ms-win-crt-private-l1-1-0
Не смог поставить. Ни чего не понятно.
Что конкретно не получилось?
Сейчас Battle.net версии 1.26.0.12375 работает с wine 4.* и 5.* версиями без подобных ухищрений.