Почему Linux многим и даром не нужен, или как я паковал GIMP в формат Installer-SH
Почему же Linux многим и даром не нужен? Может из-за вечных проблем с драйверами, особенно для поделок AMD под названием Radeon? Или проблема в отсутствии нативных игр для Linux? А может всё дело в том, что линуксоидные разработчики постоянно ломают что нормально работало?
реклама
На самом деле есть огромное множество причин, почему Linux несостоятелен в настольном сегменте настолько, что и даром не нужен подавляющему большинству людей, несмотря ни на что.
Однако у "дряхлого пингвина" есть серьёзная проблема, и заключается она в распространении софта, да, когда линуксоиды пытаются идти в настольный сегмент - они делают что угодно, но не решают эту проблему.
реклама
Помимо классических репозиториев (DEB / RPM) - линуксоиды безуспешно наплодили вызывающие отвращение Snap и Flatpak, это по сути та же помойка и тотальная зависимость от репозиториев в интернете, только под другим углом обзора и красивые лозунги, разумеется это всё мракобесие непригодно для нормального использования в настольном сегменте...
Так же разработчики софта в меру сил плодят свои уникальные костыли для линуксов, но это пока в ужасе не сбегут в старую добрую Windows, действительно пригодную для использования и распространения разработанного софта.
Из жизнеспособного в настольном сегменте Linux можно выделить только Installer-SH, AppImage и обычные архивы, это единственные известные мне способы, которые не ставят пользователя в тотальную зависимость от постоянно умирающих линуксоидных репозиториев в сети.
Хотя обычные архивы зачастую приемлемы в среде Windows, но не в линуксах, ибо сами линуксы в настольном сегменте слишком недоразвиты, чтобы можно было нормально взаимодействовать с софтом распространяемым через обычные архивы, многие дистрибутивы даже правильно работающий ярлык на рабочем столе не способны создать, хотя казалось бы, Windows это умеет делать уже больше 20 лет.
реклама
AppImage уже интереснее, но это просто исполняемый архив с плохим уровнем сжатия, от чего приложения весят много, так же этот формат работает через монтирование во временный каталог, а это напрочь ломает работу кэша файловой системы в ОЗУ, ещё в наличии проблема взаимодействия, когда у приложения есть несколько исполняемых файлов, это просто невозможно по-человечески обработать, ну и конфликты файлов конфигурации никуда не исчезают, в том числе засорение домашнего каталога пользователя, ведь приложение не может иначе работать будучи упакованным в AppImage, ему нужно где-то размещать рабочие файлы и настройки...
Вариант Installer-SH тоже имеет ряд проблем, но он активно развивается, и уже позволяет распространять софт для Linux предоставляя отличное сжатие (7-Zip), простоту взаимодействия и стандартизацию, а в последней версии (2.0) была решена проблема конфликтующих файлов конфигурации, когда установлено несколько разных версий одного приложения, хотя это экспериментальная возможность.
Почему я не говорю про копирование софта через локальные копии репозиториев? Да потому что это чистое издевательство над здравым смыслом и пользователем! Тем более пакеты от одного линукса порой не подходят к другим линуксам, и узнать это пользователь сможет только когда попытается заранее скачать нужное приложение, пройдя 9 кругов ада, а после установить на другом компьютере без доступа к сети, где это приложение собственно и нужно.
Для серверного применения у меня претензий нет к репозиториям, но в настолько сегменте это мусор и издевательство.
реклама
Впрочем, особо странные разработчики игнорируют даже способ распространения софта обычным архивом, уже догадались про разработчиков какого приложения я говорю? Правильно это разработчики GIMP, что предоставляют пользователям Linux только отвратительную flatpakref ссылку вместо полноценного установочного пакета, или хотя бы обычного архива...
В чём проблема flatpakref ссылки под видом установочного пакета? В ссылке и проблема, этот Flatpak мусор невозможно нормально использовать, во-первых, в линуксе должна быть установлена система Flatpak, да, этот хлам нужно ещё каким-то образом предварительно установить в линукс, если не установлен, во вторых этим мусором невозможно установить приложение без доступа к репозиториям в интернете, ссылку невозможно закинуть на флешку и установить на другом компьютере с линуксом, а кроме бесполезной в практическом смысле ссылки ничего нет.
Фактически разработчики не выпускают GIMP для Linux, ибо то, чем они кормят пользователей линуксов - назвать приложением невозможно в принципе, это издевательство над пользователями, не иначе.
Конечно, можно взять исходный код, запастись бубнами и начать неистовые пляски в попытках скомпилировать GIMP из исходников, которыми так любят гордиться линуксоиды, но проблема в том, что пользователи попытавшиеся перейти на линукс - уже с ужасом удалили "дряхлого пингвина" и вернулись к Windows, ведь в отличие от вечно недоразвитых линуксов - для Windows существует официальный, адекватный установочный пакет приложения...
Буду ли я заниматься мракобесием с компиляцией GIMP из исходного кода? Конечно нет! Так называемые "народные умельцы" уже сделали неофициальные AppImage сборки, правда один бросил дело в 2021 году, а другой всё ещё живой, так что проверим оба варианта, а после лучший перепакуем в формат Installer-SH.
В дистрибутиве Debian 7 (2013 год выпуска) ни один из вариантов не запустился, GIMP 2.10.25 ругался на зависимость GLIBC 2.14, ну а GIMP 2.10.38 вообще ругался на fusermount:
Начиная с Debian 8 ошибки изменились, GIMP 2.10.38 от "ivan-hc" будет выдавать ошибку "No permissions to creating new namespace" вплоть до Debian 10 включительно, а вот GIMP 2.10.24 от "aferrero2707" уже запустился, и даже предложил интегрироваться в систему, хотя всех проблем AppImage формата, конечно же, это не решает...
Да и если что-то случится с исходным файлом - вся интеграция поломается, а ведь пользователь может прямо с флешки запустить...
В общем выбор очевиден, выбираю старую версию графического редактора, но работающую в более широком диапазоне линуксов.
Теперь можно приступать к созданию Installer-SH пакета, для чего распаковываю AppImage архив.
И беру Installer-SH заготовку версии 2.0.
Распакованный AppImage бросаю в каталог файлов приложения, осталось настроить установочный пакет.
На всякий случай запускать приложение буду через прослойку, что переносит "домашний каталог" в "userdata", чтобы избежать возможные конфликты конфигураций с другими версиями GIMP, если такие будут.
Подготовив ярлыки приступаю к настройке главного скрипта, заполняю основную информацию о программе, указываю архитектуру, установку пользовательских данных отключаю, ибо таких нет.
Осталось настроить оптимальный размер словаря для упаковки, и упаковать файлы, да протестировать, вдруг что-то упустил при настройке ярлыков или главного скрипта.
Ну а пока создаётся архив - удаляю 7-Zip архиватор 32 разрядный, чтобы не занимал лишние 3 мегабайта будучи неиспользуемым.
Устанавливаем пакет, он ругается на хэши неправильные, это нормально.
Проверяем меню, все ярлыки на месте, это хорошо.
Плохо лишь то, что оно предлагает интеграцию с системой, нужно отключить этот функционал:
В любом случае приложение нормально установилось и работает.
Осталось только найти и устранить код, отвечающий за интеграцию AppImage с системой, ибо она больше не нужна в принципе, я не хотел переписывать портянки, потому просто добавил точку выхода в нужном месте.
Придётся заново упаковать архивы, но ничего страшного, в процессе сборки пакета это нормальное явление, повторно устанавливаю приложение игнорируя предупреждения о перезаписи файлов.
Прекрасно, теперь GIMP запускается без навязчивых предложений интеграции, и весь рабочий мусор остаётся в специально отведённом для этого месте, а не в домашнем каталоге пользователя.
Осталось почистить и проверить установочный пакет в других линуксах.
Начнём с Debian 8, собственно почему бы и нет? В общем, устанавливаю и всё работает как положено.
Как насчёт экзотики вроде Gentoo 2016 года выпуска? Давайте проверим!
К сожалению, в Gentoo 2016 года AppImage не запустился, перехожу к Installer-SH варианту, и вижу проблемы с кодировками, я уже и забыл как это выглядит, со времён Windows XP не видел...
Впрочем, даже полноценная установка не помогла приложению, да, часть ошибок связанных с AppImage исчезла, например из-за проблем с монтированием, но появились другие ошибки.
Можно начать разбираться, но извольте, ради Gentoo этим заниматься не имею никакого желания, когда разработчики дистрибутива научаться собирать пригодные для использования образы - тогда может и подумаю, а так пошёл этот дистрибутив куда подальше...
Давайте лучше проверим Fedora 38, увы, но более свежей версии у меня нет в данный момент.
AppImage вариант запустился, однако в среде Fedora не работает функционал интеграции с системой, GIMP просто запустился зависнув на некоторое время в самом начале.
Давайте установим с помощью Installer-SH, и да, GIMP работает как положено, ярлыки тоже на месте.
Где бы ещё проверить... Точно! Завалялся у меня тут ArchBang Spring 13.04! Вот это точно экзотичный дистрибутив, да ещё и старый, аж 2013 года судя по версии!
Разумеется, проверяю AppImage вариант, если честно, конкретно этот пакет действительно хорошо сделан, раз запускается даже в таких линуксах, хотя и с отвалом интеграции.
Ну что же, запускаю Installer-SH вариант программы! Дистрибутив настолько экзотичный, что даже не определилось рабочее окружение, вообще никак, нужно будет доработать в следующих версиях установочного пакета...
Впрочем, несмотря на экзотичность дистрибутива ArchBang - ярлыки в меню появились, и всё работает как положено.
Пожалуй хватит тестировать, давайте посмотрим на преимущества и недостатки.
Весомое преимущество Installer-SH состоит в размере, GIMP в формате Installer-SH весит 105.6 МиБ, когда AppImage вариант весит целых 167.8 МиБ, фактически на 59% больше (больше - хуже).
Так же Installer-SH позволяет вынести "домашний каталог", таким образом исключается вероятность конфликта файлов конфигурации и прочего мусора, если вдруг установлены разные версии одного приложения в линуксе.
Отдельно следует сказать про интеграцию с системой, ведь установочный пакет изначально подразумевает минимальную интеграцию, потому не нужно создавать отдельные костыли для каждого приложения в отдельности.
Ещё Installer-SH не имеет проблем с множеством исполняемых файлов в одном приложении, ведь можно создать сколько угодно ярлыков для каждого файла или задачи, когда AppImage требует дополнительных танцев с бубном и терминалом.
Ну и конечно Installer-SH позволяет упаковщику указать информацию о приложении со списком совместимых линуксов, хотя сам установочный пакет и позволяет устанавливать в дистрибутивах за пределами списка совместимости, но будет ли работать приложение уже другой вопрос.
В случае AppImage одному лишь богу известно, где заработает, а где нет, и нет никакой адекватной возможности наверняка узнать список совместимости перед запуском / установкой, если только не положить рядом текстовый файл с информацией...
Осталось только загрузить установочный пакет GIMP 2.10.25 в репозиторий Chimbalix Software Catalog.
https://github.com/Shedou/Chimbalix-Software-Catalog
Теперь GIMP существует в виде нормального установочного пакета, который можно закинуть на флешку, и установить на другом компьютере без мракобесия с ущербным официальным Flatpak вариантом, как представлю установку Flatpak в Debian 8, особенно без доступа к интернету, брр, а ещё этот мусор называют будущим для приложений в Linux, пф.
Не то, чтобы мне нужен был нормальный установочный пакет GIMP, я предпочитаю гораздо более развитую Krita, просто нужно было дополнительно протестировать новую версию Installer-SH 2.0, и тестирование прошло более чем успешно.
В качестве "побочного эффекта" появился новый автономный установочный пакет, который будет жить до тех пор, пока существует хоть одна копия, даже если репозитории вымрут полностью...
Конечно, AppImage пакеты тоже будут жить, но занимают они гораздо больше места, а значит хранить их гораздо тяжелее, да и выше уже расписаны недостатки, так что на этом закончим.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Молочные реки...
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила