Есть огромное множество причин несостоятельности Linux в настольном сегменте. Настолько много, что даже перечислить полноценно в пределах одной статьи затруднительно.
Но одну из причин я вполне успешно решаю в последнее время. Речь сейчас пойдёт не про дистрибутив Chimbalix, который за десяток выпущенных версий уже превосходит многие прочие Линуксы в плане использования, ибо ни одним другим Линуксом я так долго не мог пользоваться.
Речь пойдёт про новый формат распространения софта под названием Installer-SH.
В репозитории Chimbalix-Software-Catalog уже набралось несколько десятков приложений в формате Installer-SH. Вроде и мелочь, но внимательные уже давно могли заметить явное разделение списка на версии установочного пакета.
Хотя Installer-SH и является новым методом распространения софта для Linux, но он уже прошёл путь в несколько десятков версий и к текущему моменту имеет следующие особенности:
Это всё звучит неплохо, но достаточно ли, чтобы сравниться с уровнем действительно пригодной для использования Windows? На самом деле нет. Даже идеальный установочный пакет не сможет вправить руки в плечи разработчикам софта, как и разработчикам дистрибутивов и даже самого ядра Linux, в котором постоянно что-то ломают и выбрасывают с обновлениями.
Ранее я сделал и проверил десять версий Kdenlive в формате Installer-SH. В целом программа меня не порадовала — слишком уж много косяков. Но при этом остался доволен экономией места на диске при хранении установочных пакетов. Размер вышел почти в два раза меньше, чем если бы я хранил это всё в исходном линуксоидном формате AppImage.
Однако были проблемы и у Installer-SH версии 2.4. Массовая установка пакетов в тихом режиме работала, но не совсем правильно.
Потому пришлось начать работу над следующей версией пакета. Первым делом исправил код, отвечающий за функцию обновления меню. Теперь она нормально отключается.
Эта функция нужна именно потому, что некоторые дистрибутивы Linux не способны сами следить за своим меню. Linux нужно постоянно пинать, но если пинать слишком часто, то он может и развалиться. Потому дистрибутивы Linux я порой называю «дряхлым пингвином»...
Так же создал два вспомогательных скрипта. Первый позволяет массово устанавливать пакеты. Нужно только заполнить массив списком файлов и запустить.
Второй скрипт уже предназначен для использования в виртуальной машине с кривыми дистрибутивами Linux вроде Fedora, которые не выделяют достаточно места для файловой системы в Live-CD режиме.
Короче говоря, этими двумя скриптами можно заранее выделить 2-16 Гб места для файловой системы из ОЗУ под каталог PortSoft, а после начать массовую установку софта для тестирования.
|
|
|
Как можно что-то сделать лучше? Просто взять и сделать? Нет, так оно не работает. Чтобы что-то сделать лучше, этим нужно пользоваться. А ещё лучше иметь опыт с лучшим из лучшего, чтобы было на что ориентироваться.
К сожалению, разработчики от мира Linux явно не всегда пользуются своими же поделками, а разработчики дистрибутивов вряд ли смотрят на лучшую ОС в сегменте под названием Windows. Иначе Linux не занимал бы столь печальное положение на протяжении десятилетий.
С устоявшимся подходом в мире «дряхлого пингвина» невозможно достичь уровня Windows. Только Windows может опуститься до уровня Linux...
Не скажу, что я прямо лучший разработчик. Напротив, мои основные навыки находятся в других областях. Моя нестабильная история GitHub не даст соврать. Но в этом и состоит ирония ситуации.
Разработчики от мира Linux десятилетиями не могут полноценно догнать даже уровень древней Windows XP в плане удобства использования и функциональности. А я далеко не разработчик. Просто пришёл и сделал Chimbalix, а после Installer-SH, так как другие не осилили ничего подобного. Только кричать горазды, какая Windows якобы плохая и ужасная, Linux якобы классный и прекрасный, а пользователи вокруг все такие «неосиляторы», не могут осилить пару команд в терминале...
|
|
|
Хотя Installer-SH уже разжирел до 1500+ строк кода, но он всё еще не очень нравится мне, потому что активно использую данный способ установки софта и вижу некоторые недостатки.
Однажды мне понадобилось приложение для обработки RAW изображений с фотокамеры. В среде Windows всё нашлось бы очень легко, но в среде Linux мало качественного софта. Из вменяемого и подходящего в данном случае знаю только RawTherapee. Эта программа изначально разрабатывалась именно под Windows. Чисто на заметку.
Как уже все могли заметить, распространяется RawTherapee нормальными установочными пакетами для Windows и macOS. Но для Linux нет нормальных вариантов. Только посредственный контейнер AppImage с массой проблем как технического характера, так и пользовательского.
Конечно, не обошлось без косяков с путями в оригинальных скриптах необходимых для запуска...
Как вам такое? Классно выглядят кнопки в интерфейсе?
Мне пришлось переопределить ряд переменных окружения в своей прослойке для запуска, чтобы всё нормально заработало после распаковки линуксоидного контейнера.
Теперь кнопки появились на своих местах, и программа нормально заработала.
Таким образом, был собран ещё один пакет в формате Installer-SH. Но я не спешу выкладывать его в репозиторий, хотя уже протестировал в дистрибутиве Debian и Fedora.
Весит в два с лишним раза меньше оригинального AppImage контейнера. Это коротко о преимуществе оптимизированных параметров сжатия файлов с помощью архиватора 7-Zip.
Хоть и был создан нормальный установочный пакет с нужной мне программой, который будет жить до тех пор, пока существует хоть одна копия, но Installer-SH сам себя не сделает лучше.
Сначала навожу порядок в прослойке для запуска, хотя выглядит всё беспорядочно в режиме отображения изменений...
|
|
|
В общем. Перенёс основные настройки и переменные в начало скрипта. Ещё поправил порядок элементов в переменных вроде LD_LIBRARY_PATH и выделил зону для всего прочего, что может понадобиться софту.
Дальше будет веселее. Ведь меню приложений далеко не во всех дистрибутивах Linux работает правильно. Пример тому — Debian 9. Я знаю об этой проблеме уже давно, но только сейчас решился сделать костыли, чтобы хоть как-то работало в таких проблемных Линуксах.
Выглядит проблема никак. Буквально. Новая категория просто не появляется после установки софта.
|
|
|
На самом деле я следую спецификациям XDG Desktop. Но не совсем идеально. В ярлыках использую категории вроде «chi-edit», когда по спецификациям нужно добавлять «X» в начало, что даёт «X-chi-edit». Полагаю, не нужно объяснять, почему я продолжаю использовать имена категорий без приставки «X».
Кстати, оформление сайта FreeDesktop в последнее время сильно преобразилось. Хорошая работа.
|
|
|
Вернёмся к делу. Беда вовсе не в злополучных категориях, хотя и связана с ними. Достаточно добавить любой файл ярлыка в категорию, предназначенную для размещения подкатегорий с приложениями, и она начинает отображаться в поломанном Debian 9.
|
|
|
Это весьма забавная ситуация. Ведь в других дистрибутивах, в том числе более старых, меню работает без подобных костылей.
Осталось разобраться, почему не отображается иконка. Но как бы я не танцевал с бубном вокруг «дряхлого пингвина», единственный вариант заставить работать иконку требовал root права для доступа к системному каталогу «icons».
Такое я не могу себе позволить ради откровенно поломанных дистрибутивов Linux. Увы.
Но что точно могу себе позволить, так это костыли! Просто лишний ярлык, который порой невозможно будет убрать из меню без утилит либо ручной правки файлов, так как многие рабочие окружения Linux слишком недоразвитые до сих пор. Будет мотивацией разработчикам рабочих окружений, у которых меню до сих пор слишком отсталое и функционально ущербное.
Мне лишний ярлык мешать точно не будет. Так что выбираю меньшее из зол. Помимо Debian 9, наверняка есть и другие такие же поломанные дистрибутивы, о которых я даже понятия не имею.
Осталось добавить новый код в главный скрипт и протестировать.
Так гораздо лучше. Это был не самый изящный способ решения проблемы, но рабочий.
|
|
|
|
Обычно линуксоиды просто всё выбрасывают, что не могут осилить, часто оправдываясь, что функционал якобы устарел или им якобы никто не пользуется. Я же стараюсь сохранить, что возможно, даже если приходиться писать костыли. Это и отличает линуксоидов от нормальных разработчиков.
Как выяснилось, Fedora 24 тоже является поломанным дистрибутивом Linux, и новый костыль спасает ситуацию. А ведь я уже говорил, что понятия не имею, сколько ещё Линуксов поломано.
|
|
|
|
Одной проблемой меньше. Заодно обновил основные архивы.
Так же поправил функцию очистки мусора после окончательной сборки пакета.
Теперь удаляется даже неиспользуемая версия архиватора 7-Zip, что позволяет сэкономить 3-4 Мб в конечном размере пакета.
Хотя при неправильном использовании это может привести к ситуации, что функция может удалить обе версии архиватора, если после первой чистки будут изменены настройки пакета, затрагивающие архиватор.
Но это нормально. Данная функция используется, когда упаковщик уверен, что всё собрал правильно, и оно работает как положено. Это самый последний этап, после которого идут только расширенные тесты в прочих дистрибутивах Linux и создание распространяемого Tar архива.
На этом завершим текущую часть статьи. Далее поэкспериментируем с GNOME и проведём тесты. Следите за обновлениями, чтобы не пропустить следующую часть.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.