О разработке Installer-SH v2.5 и несколько слов про Linux (вторая часть)
В первой части были перечислены особенности установочного пакета Installer-SH и внесены некоторые исправления. Здесь продолжим работу над пакетом и проведём тесты.
GNOME
Я не хотел трогать этот хлам. Но вдруг стало интересно поэкспериментировать.
реклама
Это DE явно создано для издевательства над пользователями. Достаточно просто взглянуть на меню приложений с кривыми ярлыками и отсутствие панели задач, отлично зарекомендовавшей себя на протяжении трёх десятилетий в Windows и прочих не совсем уродливых операционных системах (desktop).
Однако есть масса технических проблем. После установки в меню появился костыль для поломанных Линуксов, но появились не все ярлыки. Нужно перезапускать сессию, чтобы кривое меню GNOME полноценно обновило своё содержимое.
А ещё нет вменяемой поддержки вложенных категорий, ибо разработчики плевали на XDG спецификации.
![]() |
![]() |
![]() |
![]() |
реклама
На самом деле в очень старых версиях GNOME почти всё было нормально: и вложенные категории иногда поддерживались, и меню нормально само обновлялось при появлении новых ярлыков.
Но сейчас все прекрасно видят, в какой функционально ущербный мусор превратился GNOME. Без расширений это абсолютно непригодное для использования DE. Даже формат часов невозможно нормально настроить...
Как разработчик Installer-SH, я очень не хочу поддерживать это мракобесие, разработчики которого даже не удосужились придумать функцию для ручного обновления меню, и пользователю приходилось выходить из системы или перезагружать ПК, чтобы вздёрнуть застрявшее меню.

реклама
По факту GNOME работает как кривая поделка. Автоматическое обновление срабатывает далеко не всегда, а функций ручного обновления меню просто не существует.
Наверняка найдутся «самые умные» и начнут рассказывать, мол, нажми ALT+F2 и введи «restart». Якобы это поможет... Нет, не поможет, потому что вместо графического сервера используется вечно недоделанный Wayland.

В любом случае, даже если бы этот костыль и работал, он всё равно лишь косвенно влияет на меню приложений. А работает он почти нигде. Проверил тут старую Fedora 30, выпущенную в 2019 году. Увы.
![]() |
![]() |
![]() |
реклама
Достал Fedora 20, выпущенную в 2013 году. Тут костыль на удивление работает и даже можно применить через скрипт с последующей поломкой рабочего стола при закрытии терминала... Ещё я столкнулся с проблемой: старый GNOME не позволяет запустить больше одного окна терминала. Нужно через терминал запускать еще один терминал. Брр.
![]() |
![]() |
![]() |
![]() |
Ну и самое забавное — в настолько старом GNOME просто нет смысла от ALT+F2 и Restart, ибо тут всё еще нормально работает автоматическое обновление ярлыков. Ну или просто повезло один раз...
![]() |
![]() |
![]() |
Короче говоря, я снова пришёл к тому, с чего начал. Просто нет смысла поддерживать это уродливое, нефункциональное и кривое рабочее окружение под названием GNOME.
На смартфонах и планшетах GNOME, может быть, с очень большой натяжкой и прижился бы. На нормальных ПК — однозначно нет, ибо это издевательство над пользователями и разработчиками. Если пытались уподобиться macOS, то скажу так: лучше купить настоящее «яблоко», чем издеваться над собой, пытаясь использовать внешне похожие поделки от мира Linux.
Функциональность...
Знаете, а не зря я экспериментировал с уродливым GNOME. Видите этот примечательный ярлык в самом начале меню? Изначально он задумывался как заглушка, но что, если придать ему функциональности?

В итоге было решено сделать так, чтобы ярлык открывал стандартный каталог PortSoft с приложениями. И это сработало. Правда, GNOME сломался, когда попытался закрыть терминал, через который перезапускал оболочку для обновления меню по принципу «ALT+F2 и Restart».
![]() |
![]() |
![]() |
![]() |
Хотя ярлык открывает PortSoft только в домашнем каталоге, но теперь он не бесполезен. Время от времени мне действительно нужно заходить в папку с программами.

Прекрасно. Теперь можно получить доступ к каталогу приложений одним кликом. Иронично лишь одно: в моём дистрибутиве Chimbalix этой особенности пока нет, а доступна она станет, только если будет установлено приложение в формате Installer-SH последней версии с подготовкой основы.

Даже не знаю, писать ли костыли для обновления базовых файлов, если они уже установлены...
В итоге добавил целых два новых режима запуска. Один позволяет обновить базовые файлы меню и PortSoft. Второй позволяет обновлять приложения без вывода предупреждения о том, что файлы будут перезаписаны.
![]() |
![]() |
Если с обновлением базы всё понятно, то с параметром обновления устанавливаемой программы всё может показаться не очень ясным. Но на самом деле всё просто. Этот параметр полезен при установке в тихом режиме, чтобы процесс не прерывался на предупреждения при обновлении установленных программ.

RawTherapee
Возвращаемся к программе для обработки RAW изображений. И тут возникает новая ситуация. Есть пакет со старой версией Installer-SH, нужно обновить не саму программу, а установочный пакет. Как это сделать?

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

Так же нужно заменить архив с базовыми файлами. Собственно, всё. Осталась прослойка для запуска программы, но её нет смысла трогать, тем более придётся перепаковать архив с файлами приложения. Мне лень это делать без особой необходимости.

Осталось только перепаковать оставшиеся 8 версий RawTherapee. Я уже говорил, но изначально эта программа выпускалась только для Windows и macOS. Для Linux она появилась с версии 5.4.

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

С RawTherapee 5.9-5.12 всё было относительно легко, но версия 5.8 настолько погрязла в портянках из костылей, что не вижу смысла переписывать под свою прослойку.

Только настоящая проблема затаилась в навязчивой интеграции.
![]() |
![]() |
Думаете, это что-то крутое? Нет. Интеграция состоит из одного ярлыка и пачки иконок в домашнем каталоге пользователя. Ну и парочка файлов конфигурации, вероятно, конфликтующих с другими версиями софта.

Ещё меня напрягает связка библиотек во временном каталоге. Но не будем с этим ничего делать. Работает — не трогай. Хотя ничего хорошего в этом нет, учитывая общедоступность временного каталога. И файлы библиотек будут находиться там на протяжении всего времени работы с программой.
![]() |
![]() |
![]() |
Вернёмся к назойливой интеграции. По-хорошему следовало модифицировать оригинальные файлы, отключив запросы. Но тут такая дикая портянка, даже не хочу трогать.

Обойдусь костылём в виде нужного файла в нужном месте. Чтобы эта дикость просто остановилась и не мозолила глаза. Благо Installer-SH позволяет такое провернуть.

Аналогичные пляски с бубном были проведены и над другими версиями RawTherapee...
Тесты
Осталось только протестировать готовые установочные пакеты.

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

Ну а дальше проведём тесты. Копирование AppImage контейнеров заняло много времени, ибо размер имеет значение. Однако RawTherapee не запустился в Debian 7 ни в каком виде.
![]() |
![]() |
![]() |
![]() |
В Debian 8 ситуация значительно лучше. На этот раз запустились версии с 5.4 по 5.8. Более свежие версии софта выдали код ошибки 1.
![]() |
![]() |
Debian 9 уже позволяет устанавливать софт прямо с флешки, чем и воспользуюсь. Процесс занял мало времени благодаря отличному сжатию установочных архивов. Хотя совместимость программы осталась на прежнем уровне.
![]() |
![]() |
Начиная с Debian 10 запустился RawTherapee версии 5.9. В остальном без изменений.
![]() |
![]() |
Ради интереса заглянул в папку с файлами конфигураций. И да, без вынесения домашнего каталога разные версии софта наверняка конфликтовали бы между собой, ибо используют файл конфигурации в одном и том же месте под одним и тем же именем.

В Debian 11 запустились все версии, кроме самой последней. Если честно, это далеко не самая ужасная программа для Linux в плане совместимости со старыми дистрибутивами.
![]() |
![]() |
В дистрибутиве Debian 12 всё запустилось без проблем.
![]() |
![]() |
![]() |
Fedora
Следующей пойдёт Fedora! Я не очень хорошо отношусь к этому Линуксу, но не могу не проявить уважение за тот факт, что разработчики поддерживает архив старых версий дистрибутива.

Начинаю с Fedora 20, и результаты оказались схожи с Debian 8. Только на этот раз пришлось воспользоваться вторым вспомогательным скриптом, ибо дистрибутив выделяет слишком мало места для файловой системы в Live-CD режиме.
![]() |
![]() |
![]() |
Дальше было решено проверить Fedora 42. Если все версии RawTherapee запустятся, значит нет смысла тратить время на проверку каждого дистрибутива.
Однако запустилось не всё. Версии с 5.4 по 5.8 ругаются на нехватку зависимостей. При этом Installer-SH не выдаёт код ошибки. Вероятно, разработчики перестарались с портянками для запуска этих версий RawTherapee. Даже при явной ошибке они не оставляют код после себя.
![]() |
![]() |
![]() |
К сожалению, продолжаем тестирование в обычном режиме. Не пропуская ничего.
Fedora 40, 38 и 36 вышли с тем же результатом. Увы. Именно так и выглядит деградация некоторых дистрибутивов Linux. Раньше работало, а сейчас нет...
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Fedora 34 и 32 смогли запустить почти все версии RawTherapee, кроме последней.
![]() |
![]() |
![]() |
![]() |
А вот 30-я версия дистрибутива оказалась очень поломанной. Запустилась только одна программа из девяти. Отвратительный результат.
![]() |
![]() |
28-я «Шляпа». Не удалось запустить лишь три последние версии RawTherapee.
![]() |
![]() |
Так называемая «Шляпа» под номером 26 проходит тест! Правда, осилила только одну версию программы, остальное выдало ошибку...
![]() |
![]() |
![]() |
Остались Fedora 24 и 22. Совместимость получилась на уровне двадцатой версии дистрибутива.
![]() |
![]() |
![]() |
![]() |
Заключение
На этом можно завершить тесты, а новую версию Installer-SH перевести в стабильную категорию.

Общий вес пакетов в формате Installer-SH — всего 383 МБ. Исходные контейнеры весят целых 947 МБ. Это означает, что установочные пакеты в новом формате более чем в 2 раза дешевле хранить и распространять.
![]() |
![]() |
Технически Installer-SH позволяет создавать сборники программ. Давайте проверим, как будут сжаты все версии RawTherapee, вместе взятые в одном пакете. Я не буду делать всё правильно, просто набросаю файлы в один каталог, чтобы не тратить лишнее время и труд.

Благодаря архиватору 7-Zip и оптимизированным параметрам сжатия удалось всё разом ужать до впечатляющих 128 МБ! Напомню, в исходном формате AppImage это всё весит порядка 947 МБ.

С точки зрения хранения информации — это прекрасный результат, но с точки зрения обычного пользователя — это сомнительно. Ведь все программы в распакованном виде занимают почти два гигабайта места на диске. Да и не нужно столько разных версий одновременно в одной системе. Тем более далеко не каждый Линукс способен запустить всё.
Это, конечно, даёт идею по реализации нового функционала, позволяющего выбрать конкретные программы из списка для установки. Но потребует основательной переработки установочного пакета и пересмотра всей структуры. Может быть, потом подумаю над реализацией...
Потому каждую программу предпочитаю паковать отдельно. Хотя это менее эффективно, но всё равно эффективнее прочих типичных для Linux способов.
https://github.com/Shedou/Chimbalix-Software-Catalog
![]() |
![]() |
Может быть. Мой установочный пакет далеко не идеален, но он уже показывает себя лучше прочих способов распространения софта для Linux. Как минимум тем, что он просто работает даже на компьютерах без интернета и не требует от пользователя особых навыков и знаний для установки программ.
А ещё Installer-SH не требует предварительной установки в систему всякого мусора с root правами через менеджеры пакетов вроде APT, как этого требуют всякие хвалёные Flatpak и Snap.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.

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










































































Комментарии Правила