Найти в Дзене
SOFT BLOG ▾

Гид по пакетам Linux для новичков: от DEB и RPM до AppImage и Flatpak

Гид от такого же ламера, как большинство пользователей, которые хотят, но в раздумьях... стоит ли переходить на линукс, и вообще понять, что к чему. Мне как новичку (хотя пробовал линукс уже давно, и периодически пытаюсь на него подсесть) очень интересна эта тема, но есть нюансы, которые мешают точно определиться: и..... НЕТ, Linux-дистрибутивы не одинаковые. Малого того, что существует сотня разных дистрибутивов, каждый из которых имеет свои особенности, которые в том числе затрагивают способ установки и управления программами, структуру каталогов, настройки безопасности и прочее. Эти различия исторически сложились из-за разных целей, для которых создавались дистрибутивы, и предпочтений их разработчиков. Последнее скорее всего и сыграло роль - ну не шмагла я, не шмагла.... Человек блин, гомосапиенс Эти форматы пакетов представляют собой контейнеры, которые содержат файлы программы и инструкции для её установки и управления зависимостями. Системы пакетного менеджмента у Debian и Red Ha
Оглавление

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

  1. Отсутствие нужного софта, хотя не так - софта, с нужным функционалом, ибо софта для линукса очень много
  2. Почему, существуют пакеты DEB и RPM, почему сообщество линукс, не остановилось на одном стандарте
  3. Почему разные сборки (Debian, Red Hat, Astra, РЕД ОС и другие) не поддерживают одни и те же программы
Установщик q4os, типичный пример, почему многие не хотят устанавливать линукс.Хотя сложного здесь ничего нет, но система после установки максимально простая, а ещё огромный плюс, это не требовательная к железу.
Установщик q4os, типичный пример, почему многие не хотят устанавливать линукс.Хотя сложного здесь ничего нет, но система после установки максимально простая, а ещё огромный плюс, это не требовательная к железу.

Ведь у Linux дистрибутивов одно ядро, почему rpm и dev? Все линукс должны быть одинаковы!

и..... НЕТ, Linux-дистрибутивы не одинаковые. Малого того, что существует сотня разных дистрибутивов, каждый из которых имеет свои особенности, которые в том числе затрагивают способ установки и управления программами, структуру каталогов, настройки безопасности и прочее. Эти различия исторически сложились из-за разных целей, для которых создавались дистрибутивы, и предпочтений их разработчиков. Последнее скорее всего и сыграло роль - ну не шмагла я, не шмагла.... Человек блин, гомосапиенс

Почему существуют RPM и DEB:

  1. DEB – формат пакетов, созданный для дистрибутива Debian и его производных, таких как Astra, Ubuntu, Linux Mint и другие.
  2. RPM – формат, разработанный для Red Hat и его производных, таких как ALT Linux, CentOS, Fedora и openSUSE.

Эти форматы пакетов представляют собой контейнеры, которые содержат файлы программы и инструкции для её установки и управления зависимостями. Системы пакетного менеджмента у Debian и Red Hat различаются, и это повлияло на то, что каждый формат получил собственные инструменты для работы (например, apt для DEB и yum/dnf для RPM).

Совместимость RPM и DEB:

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

Можно ещё пакетов придумать, не стесняйтесь, давайте нагадим ещё больше, и тогда винда будет лидером всегда!!!
Можно ещё пакетов придумать, не стесняйтесь, давайте нагадим ещё больше, и тогда винда будет лидером всегда!!!

Почему Linux пошёл двумя путями:

Эти два пути обусловлены историей Linux и конкуренцией между крупными проектами. Debian и Red Hat развивались независимо и имели разные подходы к управлению и распространению программ. Их форматы стали основой для различных экосистем, и каждый из них продолжает развиваться с учётом предпочтений пользователей.

--------------

AppImage, Snap и Flatpak

Можно ли сделать программу, которую можно было бы установить как в Debian так и в Red Hat? Ну или придумать механизм, при котором один файл, можно было бы установить в эти две ОС.

Да, сделать программу, которую можно установить как в Debian, так и в Red Hat, возможно. На практике этого уже добились несколькими способами.

источник фото: YouTube
источник фото: YouTube

Рассмотрим основные подходы:

1. Форматы универсальных пакетов

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

  • AppImage: Этот формат пакета включает все необходимые зависимости и может запускаться как самостоятельный исполняемый файл. AppImage не требует установки, его можно запускать на любом дистрибутиве Linux, поддерживающем этот формат. Программа в формате AppImage запускается без изменений в системе, что обеспечивает лёгкость использования.
Apps in AppImage format

👆

Набор софта, который подходит для всех линуксов, ну почти

  • Snap: Этот формат, разработанный Canonical (создателем Ubuntu), также поддерживается в большинстве современных дистрибутивов Linux. Snap-пакеты изолированы и работают в своём окружении, что позволяет минимизировать проблемы с зависимостями. Однако для использования Snap нужно установить Snapd, и не все дистрибутивы поддерживают его по умолчанию.
  • Flatpak: Похож на Snap и поддерживается многими дистрибутивами. Flatpak также работает в изолированном окружении и использует свои репозитории, так что приложения могут быть установлены на разных дистрибутивах. Для работы Flatpak тоже требуется установка flatpak.

2. Использование контейнеров (Docker, Podman)

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

3. Скрипт установки с автоматическим определением среды

Ещё один вариант – создание установочного скрипта, который определяет тип дистрибутива и использует нужный пакетный менеджер (например, apt для Debian и dnf или yum для Red Hat).

К примеру вот такой
К примеру вот такой

4. Сборка из исходного кода

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

Какой способ лучше?

Каждый способ имеет свои преимущества и недостатки. Универсальные пакеты, такие как AppImage, Snap и Flatpak, наиболее удобны для пользователей, поскольку они сразу готовы к работе и не требуют компиляции или использования разных менеджеров пакетов. Если программа требует точного контроля над зависимостями или работает на сервере, контейнеризация может быть лучшим вариантом.

Ну а мой способ, это пока удобная и комфортная винда! 👶👶👶👶

-6