Выпущен Installer-SH версии 2.0: Универсальный установочный пакет приложений для Linux

Взято под контроль графическое оформление, улучшено определение рабочего окружения, прочие исправления и доработки, а также новые функции.
11 декабря 2024, среда 08:30
Hard-Workshop для раздела Блоги

Installer-SH в самом начале развития был уникальной особенностью дистрибутива Linux Chimbalix, но с версии 1.8 он научился работать и в других линуксах. В версии 1.9 случилось много улучшений, однако было и некоторое количество проблем, как правило, со старыми линуксами вроде Debian 7 / 8, а так же с некоторыми рабочими окружениями вроде GNOME / Cinnamon.

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

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

Желаете потанцевать с бубном и зависимостями, рискуя в очередной раз сломать линукс так и не установив желаемое приложение? Вперёд и с песней, есть DEB/RPM пакеты, флатпаки, снапы, и какого только "хлама" не придумали, над которым можно бесконечно плясать с бубном, особенно когда нужно установить на автономный ПК, а поделки от мира Linux поголовно привязаны к репозиториям, что порой мертвы...

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

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

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

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

Костыль двойной очистки функцией _CLEAR_BACKGROUND нужен для старых версий GNOME, да, без этого были проблемы...

 

Раз уж заговорили про оформление... Теперь оно под жёстким контролем, причём основной режим основан на использовании 8-битной таблицы цветов, ведь как показала практика - старые линуксы (2013 года) не умеют работать с RGB диапазоном, хотя его можно включить при желании.

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

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

Теперь рассмотрим начало главного скрипта, там 4 новые функции.

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

Здесь можно заметить нововведение с установкой "данных пользователя", но об этом позже.

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

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

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

Ещё добавлена проверка архитектуры x86_64 / x86, при несоответствии - установка будет прервана ещё до того, как пользователь столкнётся с ошибкой архиватора, хотя эта часть явно требует дополнительной доработки, вдруг какой-то безумец решит вписать arm64 архитектуру без должной переработки скрипта, это будет неприятно...

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

В остальном изменения недостаточно существенные, чтобы их обозревать, однако была замечена недоработка, это стили в "файле локализации", упс... Я забыл изменить стили оформления в дополнительном файле локализации, ладно, сделаю "Hot Fix" на такую мелочь.

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

Зачем оно надо? Как бы сказать... Посмотрел я однажды в свой домашний каталог и увидел характерную Linux-помойку, каждое приложение гадит в домашний каталог как пожелает. Для кого вообще придумали ".local/share" / ".config" и ".cache" каталоги? Хотя в ".config" помойка ещё похлеще, но самое отвратительное в том, что в линуксах в принципе невозможна адекватная установка разных версий одного приложения, потому разработчики наплевательски относятся к хранению файлов конфигурации.

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

В итоге я решил проблему просто разместив "домашний каталог" рядом с установленным приложением в специальном подкаталоге.

Так же это позволяет безопасно упаковать приложение вместе с "пользовательскими данными", в случае Arduino IDE это набор стандартных библиотек и настройки, позволяющие использовать приложение на компьютерах без доступа к сети.

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

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

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

Закончим обзор выпуска обзором исправлений в плане оформления, теперь оформление не зависит от ужасов конкретного дистрибутива, даже в среде ужасного GNOME всё выглядит нормально, и даже можно установить Arduino IDE 2.2.1 в Debian 7, правда работать программа не будет, характерный для линуксов ад зависимостей передаёт привет...

Впрочем, никто не запрещает устанавливать софт в линуксах, которые не указаны в списке совместимости, вдруг повезёт.

 

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

Ладно, пора заканчивать обзор выпуска.

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