Запуск репаков на Linux
Запуск репаков на Linux (также известная как Пердолинг, Секс в акваланге или Почему я не остался на Windows) - это изощренная форма цифрового мазохизма, практикуемая адептами Linux, которые по каким-то религиозным причинам отказались платить за лицензионный софт, но при этом обладают неисчерпаемым запасом свободного времени и устойчивой психикой. Суть процесса заключается в попытке заставить работать пиратский контент, сжатый алгоритмами сотоны до размеров атома, в операционной системе, которая воспринимает `.exe` файлы как личное оскорбление. Это занятие сродни попытке собрать работающий адронный коллайдер из спичек и желудей, руководствуясь инструкцией на древнешумерском, которую перевел пьяный промпт.
Анатомия страдания[править]
В основе всей этой драмы лежит фундаментальное противоречие между желанием халявы и технической реальностью. FitGirl - это персонаж (или группа бородатых сисадминов), прославившийся умением сжимать стогигабайтные игры до размера дискеты, жертвуя при этом временем установки. На родной Windows процесс распаковки такого репака способен разогреть процессор до температуры плавления вольфрама и сожрать всю оперативную память, заставляя пользователя медитировать на надпись Do not panic if it looks stuck. Однако при попытке провернуть этот фокус на Linux, уровень сложности переходит из режима Hard в режим Nightmare. Дело в том, что инсталляторы репаков часто написаны на таких костыльных скриптах, которые требуют наличия специфических библиотек Windows, отсутствующих в чистом префиксе Wine как класс. В итоге линуксоид получает не игру, а увлекательный квест по поиску `ISDone.dll` и `Unarc.dll`, который плавно перетекает в изучение логов ошибок и пересборку ядра от безысходности.
Инструментарий юного некроманта[править]
Чтобы совершить этот ритуал призыва демонов гейминга, простого терминала недостаточно. Главным орудием пыток выступает Wine - программная прослойка, которая пытается переводить вызовы Windows API на язык, понятный пингвину. Работает это чудо инженерной мысли по принципу глухого телефона: игра просит нарисовать треугольник, Wine переводит это как просьбу удалить системный загрузчик, а ядро Linux в недоумении паникует. Чтобы хоть как-то упростить жизнь, был придуман Lutris - графический интерфейс, который должен был сделать установку игр удобной, но на деле просто добавил еще один слой абстракции и глюков. Lutris позволяет управлять версиями Wine, подключать DXVK (транслятор DirectX в Vulkan) и запускать скрипты установки, которые теоретически должны делать всё сами, но на практике ломаются после каждого обновления драйверов NVIDIA. Особо продвинутые используют Proton - форк Wine от Valve, который вроде как работает лучше, но предназначен для Steam, а не для запуска варезных помоев с торрентов.
Хождение по мукам[править]
Всё начинается с того, что наш герой, гордо удаливший Windows, заходит на трекер и скачивает заветный магнитик. Уже на этом этапе его подстерегает опасность, так как BitTorrent-клиент в Linux может вести себя непредсказуемо, но это мелочи. Настоящий цирк начинается при запуске setup.exe. Линуксоид открывает Lutris, выбирает опцию Установить из исполняемого файла и с замиранием сердца жмет Play. Если звезды сошлись, на экране появляется инсталлятор с фирменной музыкой, которая орет на 200% громкости, потому что микшер звука в Wine живет своей жизнью. Но чаще всего вместо красивого меню юзер видит набор иероглифов, так как в префиксе отсутствуют шрифты, или просто черный квадрат Малевича.
Далее следует этап распаковки, который на Linux может длиться вечность. Однопоточная работа с файловой системой и кривая эмуляция приводят к тому, что распаковка игры весом в 50 Гб может занять время, достаточное для того, чтобы вырастить сына, построить дом и переустановить Arch Linux три раза. И всё это время компьютер будет тормозить так, будто майнит биткоины для инопланетян. Но самое веселое происходит, когда распаковка доходит до 99.9% и вылетает с ошибкой контрольной суммы, потому что Wine некорректно обработал обращение к виртуальной памяти. В этот момент обычно происходит неконтролируемый выброс кирпичей и проклятий в адрес Линуса Торвальдса.
Загадка диска Z[править]
Отдельного упоминания заслуживает топографический кретинизм файловой системы внутри Wine. Для эмулятора корень вашей системы `/` выглядит как диск `Z:`. Это вызывает когнитивный диссонанс у инсталляторов, которые не могут понять, как можно установить игру в путь `Z:\home\user\games`. Если же у пользователя игры лежат на отдельном NTFS-диске, который примонтирован куда-то в `/mnt/Data`, то начинается настоящая вакханалия с правами доступа и симлинками. Инсталлятор FitGirl может просто не увидеть места назначения или, что еще хуже, молча распаковать файлы в никуда, сожрав все место на системном разделе. Потом незадачливый геймер будет долго искать, куда делись 100 гигабайт пространства, перерывая скрытые папки в `~/.wine/drive_c/users/`, чувствуя себя археологом, раскапывающим цифровую помойку.
Драма запуска[править]
Допустим, чудо случилось, и игра установилась. Но это вовсе не значит, что она запустится. При нажатии на ярлык (который, кстати, Lutris часто забывает создать или создает кривым) ничего не происходит. Начинается этап курения манов. Выясняется, что для работы игры нужен `MFPlat.dll` (Media Foundation), который Microsoft не разрешает распространять, а Wine не умеет нормально эмулировать. В итоге игра работает, но все катсцены превращаются в настроечную таблицу или вызывают краш. Линуксоид лезет на GitHub, качает сомнительные скрипты, патчит префикс, ломает его, создает новый, снова качает, снова патчит. В процессе выясняется, что античит системы Denuvo не переваривает Linux, и даже взломанная версия требует танцев с бубном вокруг настройки переменных окружения.
В финале этой трагикомедии мы получаем игру, которая идет с фризами, потому что шейдеры компилируются на лету, вызывая дикие статтеры. Геймпад от Xbox определяется как клавиатура, звук отстает от картинки, а Alt+Tab гарантированно вешает систему намертво. Но линуксоид счастлив. Он победил систему. Он не заплатил корпорациям. Он потратил три выходных на то, чтобы поиграть 15 минут и удалить игру, потому что сам процесс настройки для него стал интереснее геймплея.
User1: Man, how did you even install Proton? I'm stuck with Wine.
Reply: Чувак, если ты застрял на этом этапе, то тебе лучше вернуться в свой уютный мирок с кнопкой Пуск. Здесь джунгли, здесь выживают только те, кто умеет читать `strace` лог перед сном вместо молитвы.
Это и есть истинный Дзен красноглазика.