Создаём установочный пакет Blender 4.3.2 для Linux с помощью Installer-SH 2.1

Installer-SH это новый способ распространения ПО для Linux, позволяющий создавать установочные пакеты пригодные для использования без доступа к интернету...
12 февраля 2025, среда 15:40
Hard-Workshop для раздела Блоги

Linux дистрибутивы всегда славились своей недружелюбностью к пользователям, особенно меня напрягал тот факт, что в линуксах невозможно по-человечески распространять софт, следовательно, любая переустановка системы превращается в сущий кошмар с репозиториями, адом зависимостей и прочим идиотизмом характерным для Linux в целом.

А так как я разрабатываю дистрибутив Chimbalix, и сам же им пользуюсь как основной операционной системой, было решено разработать свой способ распространения софта, ибо линуксоидные, уже существующие, ну непригодны для нормального использования...

Так родился Installer-SH основанный на уникальных особенностях дистрибутива Chimbalix, а с недавнего времени данный формат распространения софта стал пригоден для использования в сторонних дистрибутивах Linux, и так получилось, что приложений в формате последней версии Installer-SH 2.1 не выпускалось, либо я не знаю про это, ибо не собираю никакой телеметрии, в любом случае у меня есть специальный репозиторий с каталогом пакетов.

https://github.com/Shedou/Chimbalix-Software-Catalog

В общем, нужно выпустить что-нибудь в новом формате и протестировать, в качестве подопытного я выбираю Blender 4.3.2, просто потому что это приложение мне самому нужно.

Начинаем с распаковки и копирования основы Installer-SH-21.

Удаляем лишние файлы примеров.

Копируем файлы программы в соответствующий каталог, заранее очистив его от лишнего.

Поднимаемся на уровень выше и снова удаляем всё лишнее, оставляя только самое необходимое.

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

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

Хотя с другой стороны, такая функция позволит скопировать все проекты и настройки просто одной папкой при переносе на другой ПК или полной переустановке системы, не ковыряясь в помойке основного домашнего каталога...

Тяжелый выбор однако, хотя если подумать, приложение ведь и так достаточно интегрируется в систему, ладно, сделаю два варианта запуска, обычный и через прослойку, может даже появятся идеи для дальнейшего развития Installer-SH после этого опыта.

Подготавливаем файлы каталога "bin", предназначенные для запуска через терминал.

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

На этом подготовка файлов завершена, осталось настроить главный скрипт в соответствии с приложением, тут ничего сложного, просто настроить заранее подготовленные настройки.

Осталось упаковать архивы заранее подготовленным скриптом с оптимизированными параметрами, и протестировать на наличие косяков, вдруг что-то пропустил, или оЧеПятался.

Пока работает архиватор давайте посмотрим что там в вырезанном Flatpak начиная с Chimbalix 24.7, вдруг я зря делаю полноценный установочный пакет Blender? На главной странице приложения уже горит значок "непроверенно", очень "приятно" встречают конечно...

Ниже указана версия 4.3.2, та же, что и я упаковываю сейчас, размер после установки указан ~1.13 GiB, размер скачивания 454.43 МиБ.

Скачать нормальный установочный пакет тоже невозможно, кормят убогой flatpakref ссылкой вместо программы, что непригодна для использования без интернета.

Но даже если есть интернет, для скачивания программы понадобится до 1.43 ГиБ трафика, что многократно больше, чем было заявлено на сайте Flathub! Даже боюсь представить, сколько места оно сожрёт после установки, при том не забываем, что вырезанный в новых версиях моего дистрибутива Flatpak по сути является песочницей, со всеми вытекающими проблемами в работе приложений, так что я даже не буду пытаться устанавливать таким способом в старой версии линукса, которой пользуюсь, где ещё не вырезан данный пакетный менеджер, потом замучаюсь вычищать этот мусор весь...

Ну да ладно, там уже упаковались архивы для Installer-SH, благодаря отличному сжатию 7-Zip - приложение Blender 4.3.2 весит всего 324.7 МиБ, что даже меньше, чем вариант tar.xz от разработчиков (358.1 МиБ), одна зависимость Flatpak весила больше, чем всё приложение вместе взятое в формате Installer-SH...

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

Проверяем ярлыки в меню, всё отлично.

Да и само приложение тоже работает как положено.

Ну а чтобы утвердить превосходство Installer-SH над тем же Flatpak в практическом применении, от которого я уже отказался в своём дистрибутиве Chimbalix, протестируем и другие линуксы! Только почистим пакет от лишнего используя уже существующий скрипт в каталоге installer-data.

Отлично, установочный пакет Blender 4.3.2 готов для расширенного тестирования.

Копируем архив на флешку, обязательно с файловой системой NTFS, ибо старые линуксы не дружат с линуксоидной BTRFS, ну а EXT3/4 слишком ненадёжные и прожорливые для внешних накопителей...

Дальше просто подключаю флешку в виртуальную машину с другими линуксами и устанавливаю программу, прямо сейчас тестирую Debian 10, ибо более старые версии данной ОС не подходят по зависимостям, установить конечно можно, но сама программа не работает, слишком старые glibc, для Blender 4.3.2 нужна версия 2.28 и выше...

Ну а в Debian 10 слишком старая поддержка OpenGL драйвером llvmpipe, так что обычные варианты запуска не работают, нужно запускать в режиме программного GL, тут уже пришлось руками запускать, ибо меню не поддерживает "Actions", через которые реализован запуск в программном режиме...

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

Теперь проверим EndeavourOS 22.12 (основан на Arch), просто вставляю флешку, распаковываю пакет и устанавливаю, всё, Blender установлен и работает.

Что там ещё такого специфического проверить... Точно, Simply Linux 10.1 (основан на Alt), правда сначала пришлось установить эту систему, ибо в Live-CD режиме не работает, особенно позабавила фраза "В Simply Linux не бывает вирусов", боже, какой же испанский стыд...

Правда у этого линукса есть проблема, он выделил 12 ГиБ раздел под файл подкачки, в итоге на системном диске не осталось места для установки приложений, что за идиот догадался делать подкачку разделами, да ещё такими большими, не 2004 год же на дворе был во время выпуска дистрибутива...

Ну да ладно, после исправления косяков линуксоидных с подкачкой Installer-SH отработал, хотя в меню не появился новый раздел, видимо не следует спецификациям XDG в полной мере, либо нужно перезайти в систему, чтобы принудительно обновить меню, а Blender 4.3.2 запустился даже в такой экзотике, хотя и только в программном режиме, ибо дистрибутив слишком старый, старый llvmpipe драйвер не потянул.

Пожалуй на этом можно закончить тесты, осталось чуть исправить наименования в меню и загрузить архив, найти новый установочный пакет можно в GitHub репозитории:

https://github.com/Shedou/Chimbalix-Software-Catalog

Так появился очередной автономный установочный пакет с приложением в формате Installer-SH, который будет жить пока существует хоть одна копия.

Да, в случае Blender можно просто распаковать официальный архив в любое место и использовать, но извольте, создавать ярлыки в линуксах это тот ещё геморрой на голову, особенно писать вспомогательные скрипты для изоляции домашнего каталога от мусора, так что я предпочитаю использовать Installer-SH вариант, просто потому что там уже всё подготовлено для использования сразу после установки.

Ну и не стоит забывать, любое приложение в формате Installer-SH можно так же легко удалить, как и установить, и для этого не нужны никакие пакетные менеджеры.

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

Пока Flatpak не позволяет просто взять установочный пакет нужного мне приложения и установить как Installer-SH хотя бы, он абсолютно бесполезен, о проблемах работоспособности приложений в этой "песочнице" даже говорить нет смысла, пока есть фундаментальные проблемы распространения.

Я, как пользователь, хочу иметь установочный пакет, а не бесполезную flatpakref ссылку на что-то в каких-то линуксоидных репозиториях через интернет, которые в любой момент могут измениться или исчезнуть...

Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.