Как я установил 10 разных версий Kdenlive в Linux благодаря Installer-SH

Обычно в Linux невозможно установить несколько версий одного приложения, ведь происходит Ад зависимостей и конфликт файлов конфигурации...
30 июня 2025, понедельник 17:37
Hard-Workshop для раздела Блоги

В прошлый раз был протестирован и выпущен Installer-SH v2.4, однако собрал всего одну программу в данном формате...

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

Итого было загружено 9 версий Kdenlive: начиная с 16.12.2 и заканчивая 24.12.3. Весит это всё добро в оригинальном формате порядка 1.8 ГиБ.

Кто-то скажет, мол, возьми да запусти нужную версию! Appimage ведь весь из себя портативный! Но, увы, это Appimage контейнер со всеми вытекающими проблемами. Да и не стоит забывать про конфликты файлов конфигураций, ибо Linux.

Хотя некоторые версии Kdenlive и ругаются на проблемы с зависимостями, и хвалёные контейнеры эту проблему по факту не смогли решить. Но обратите внимание на этот хаос из файлов конфигураций. В одной только папке «config» было размещено несколько разных файлов. И это на 5 разных версий программы. Решил запустить лишь половину для эксперимента.

А ведь есть ещё файлы в каталоге «.local/share» и куча мусора в каталоге «.cache»".

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

Но вот в «Линуксах» компетентность разработчиков оставляет желать лучшего, а потому программы легко могут поломаться при попытке воспользоваться уже существующими файлами конфигурации. Всё же «Линуксы», в отличие от Windows, не подразумевают наличия разных версий одного софта в системе, ибо Ад зависимостей мешает такое реализовать во всяких репозиториях.

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

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

Моя задача состоит в проверке установочного пакета Installer-SH.

Упаковка

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

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

Так как ярлыки менять не нужно, было достаточно просто распаковать файлы программы и настроить Launcher, чтобы всё нормально запускалось и в Диспетчере Задач отображался «kdenlive», а не какой-то непонятный «AppRun».

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

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

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

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

Отлично! Десяток разных версий Kdenlive установлен! Как пользователь я теперь могу выбрать любую версию программы и использовать.

И кто сказал, что я не могу запустить одновременно все десять версий Kdenlive, упакованных в формат Installer-SH?

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

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

Так что да. Installer-SH снова доказал свою состоятельность даже в плане использования программы, в отличие от линуксоидных способов распространения софта. Осталось протестировать Kdenlive в прочих «Линуксах». Так что копирую все установочные пакеты на флешку. Именно так буду переносить всё в виртуальную машину для установки.

Разумеется, тестовой виртуальной машине выделяю 32 ГиБ оперативной памяти. Не уверен, смогут ли дистрибутивы выделить больше 8 ГиБ для файловой системы в Live-CD режиме, но попробовать нужно.

Выглядит как дикость. Какие-то виртуальные машины, немыслимые объёмы памяти для тестов и вообще столько танцев с бубном. Но что вы хотели от Linux? Это вам не Windows. По крайней мере, у меня не было нужды разрабатывать Installer-SH для Windows. Там и без меня всё уже давно разработано и работает как часы.

В любом случае, начинаю с Manjaro 21. Моё решение выделить 32 ГиБ оперативной памяти оказалось верным, ведь под файловую систему выделилось 23.5 ГиБ, чего более чем достаточно для установки всех версий Kdenlive разом.

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

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

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

Итого в Manjaro 21 не запустились старые Kdenlive 16-17, а так же последние 23-24 версии программы. Версии 18-22 запустились без проблем. Ну что же, вписываем дистрибутив в список совместимости заработавших версий Kdenlive.

Буду ли я разбираться в ошибках программы? Нет! Разбираться с ошибками и заботиться о работоспособности - обязанность разработчиков программы, а не пользователя.

Я разработал установочный пакет. Он отработал, и на этом его задачи выполнены. Только глупец будет перекладывать обязанности разработчиков на установочные пакеты и пользователей. Пусть скажут спасибо, что я вообще занялся упаковкой программы в новый формат. Который при этом вежливо сообщает об ошибках, а не просто молчит, как принято в «Линуксах».

Аналогично устанавливаю и проверяю Kdenlive в дистрибутиве Manjaro 22. Тут уже отказались запускаться только 16 и 17 версии, остальное без видимых проблем.

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

Можно даже сбор результатов автоматизировать. Это даже дало несколько идей по совершенствованию Installer-SH, точнее, файла «Launcher», чтобы тот мог работать в режиме тестирования. Хотя он и так выдает код ошибки при наличии проблемы, но можно сделать, чтобы выдавал результат запуска программы и автоматически закрывался.

Ладно, это пока просто идеи. Отложим в сторону.

В дистрибутивах Manjaro 24-25 были проблемы с 21-22 версиями Kdenlive. Они просто зависали на заставке, постоянно заполняя ОЗУ, так что пришлось закрывать через Диспетчер задач. Потому код ошибки - 137.

Это забавно, ведь в более старых версиях дистрибутива почти всё работало без проблем. Опять что-то поломали в «дряхлом пингвине»? Вписываем результаты в список совместимости Kdenlive и переходим к другим «Линуксам».

Далее Debian 7. Тут придётся перенести установочные пакеты во внутреннюю файловую систему, ибо этот «Линукс» не позволяет запускать скрипты с флешки. А ещё пришлось доработать скрипт, чтобы автоматически выставлялись права на запуск, ибо некоторые «Линуксы» спотыкаются на этом моменте.

Вот так должно выглядеть меню здоровой операционной системы. Каждой программе свой раздел, А не вот это всё мракобесие в стиле Android у некоторых современных настольных «Линуксов».

Хотя я и не надеялся на работу в Debian 7, но Kdenlive 16 и 17 запустились, хотя и не идеально. Вероятно, есть проблемы с драйвером графики (Mesa/Mesa3D). Не получится в виртуальной машине протестировать всё дотошно.

Из интересного заметил, что некоторые версии Kdenlive явно зависят от библиотеки «Libfontconfig», завершаясь ошибкой. Однако, запустив другую версию программы, можно сгенерировать кэш шрифтов и подсунуть нерабочей версии, из-за чего она начинает запускаться.

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

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

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

В итоге с переменным успехом программа запускалась в Debian 8-12. Самые жизнеспособные версии Kdenlive оказались 18-22.

Меня только одно позабавило. Kdenlive 16-17 нормально запускаются в дистрибутиве Chimbalix 24.7, однако не запускаются в чистом Debian 12, хотя Chimbalix в основе и есть Debian 12.

На всякий случай в виртуальной машине проверил на чистом дистрибутиве Chimbalix 24.7. Вдруг моя текущая система слишком грязна или дело в драйверах. И да, в чистом дистрибутиве под виртуальной машиной не запустились 16-17 версии программы. Значит, нужно удалить из списка совместимости свой дистрибутив.

Программа Kdenlive довольно скверная в плане совместимости с «Линуксами». И это факт. Идём дальше. На горизонте маячит Fedora!

Правда тут есть проблема, этот «Линукс» выделяет слишком мало оперативной памяти под файловую систему.

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

Настолько, что Fedora 30 (2019 год) смогла запустить лишь Kdenlive 20-22.

Все версии Fedora проверять не буду. По крайней мере, без должной автоматизации процесса. В общем, начиная с Fedora 36, запускаются Kdenlive 23-24, а это «Линукс» 2022 года выпуска.

Но в Fedora 38 и 40 уже выдало ошибку при запуске 24-й версии программы. Видимо, опять поломали «дряхлого пингвина». Хотя в 42-й версии Fedora снова заработало. Похоже, починили...

Это было довольно увлекательно и даже выявил один незначительный нюанс установочного пакета Installer-SH с режимом «Silent». Но пора бы уже заканчивать.

По итогу я смог установить 10 разных версий Kdenlive в «Линукс» благодаря Installer-SH и даже запустил одновременно все версии без конфликтов.

Что же до Kdenlive 16-17, то при установке на реальные компьютеры они, вероятно, будут лучше работать, ведь явно зависят от драйвера видеокарты. Однако я не собираюсь устанавливать десятки «Линуксов» на реальное оборудование ради тестов.

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

Хотя некоторые могут заметить, что я не использовал дистрибутивы с рабочим окружением Gnome. Но опять же, зачем использовать кривые рабочие окружения, частично игнорирующие спецификации XDG Desktop и созданные явно для издевательства над пользователями, когда можно воспользоваться Xfce и KDE? Они хотя бы пытаются следовать спецификациям.

Значит так. Девять версий Kdenlive в формате Installer-SH занимают 940 МиБ на диске. В формате Appimage контейнеры занимают порядка 1.8 ГиБ при хранении. Преимущество у Installer-SH в плане сжатия вышло практически в 2 раза по сравнению с Appimage, что довольно существенно.

А ведь это в 2 раза меньше трафика при загрузке через интернет. Да и сохранить можно в 2 раза больше программ, используя тот же объём. А значит, не нужно будет переплачивать за аренду места на диске, если это облачное хранилище.

Даже если заглянуть в маленькую помойку Appimage контейнеров, я не смогу ничего сказать о совместимости большинства контейнеров с каким-либо «Линуксом». Как и про назначение не всегда смогу сказать.

Тем временем Installer-SH пакеты предоставляют полезную информацию о софте, в том числе список совместимости. Впрочем, никто не запрещает выйти за пределы списка совместимости. На своё усмотрение, разумеется.

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

Чуть не забыл: нужно ведь выложить созданные установочные пакеты в GitHub репозиторий Chimbalix-Software-Catalog. Вдруг кому-то, кроме меня, пригодятся.

https://github.com/Shedou/Chimbalix-Software-Catalog/releases/tag/kdenlive16_24

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