Пакетные менеджеры

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

В мире Linux принято использовать пакетные менеджеры для установки софта, так как это обеспечивает интеграцию с системой (программы появляются в меню),
возможность обновлений и полного удаления программ через пакетный менеджер.

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

Каждый дистрибутив имеет собственный “официальный” репозиторий, пакеты в котором проверяются для конкретного дистрибутива. Некоторые дистрибутивы имеют несколько редакций, которые отличаются частотой обновления пакетов.

К примеру, OpenSUSE Leap, будучи дистрибутивом с стабильной пакетной базой, обновляет пакеты до новых версий два раза в год. OpenSUSE Tumbleweed, являясь
rolling-release дистрибутивом, обновляет пакеты максимально быстро.

Помимо официальных репозиториев, существуют пользовательские репозитории, зачастую поддерживаемые создателями дистрибутива. В таких репозиториях программы опакечиваются обычными пользователями.
Некоторые компании, выпускающие закрытые продукты, имеют свои репозитории (например Microsoft с репозиториями Teams и .NET)

Таким образом, пакетный менеджер и набор репозиториев- основное отличие между различными дистрибутивами.

Проблема “классических” пакетных менеджеров в том, что пакеты для одних и тех же программ создаются и проверяются несколько раз для разных дистрибутивов и разных форматов пакетов. Snap и Flatpak пытаются решить эту проблему, предоставляя унифицированные пакеты. Помимо унифицированности, Snap и Flatpak помогают ограничивать программы, запуская их в контейнерах.

Некоторые дистрибутивы ориентированны на работу с контейнерами, и, соответственно пакетными менеджерами Flatpak и Snap. (см. GitHub - castrojo/awesome-immutable: A list of resources for people who want to investigate image-based Linux desktops)

3 симпатии