Популярные пакетные менеджеры Linux: характеристики, особенности, сравнение

Операционные системы на ядре Linux ранних версий распространялись в виде исходного кода. Желающий воспользоваться платформой «собирал» свою ОС на локальном компьютере или сервере с учетом «железа». То же относилось к прикладным программам. Но такой подход ограничивал развитие и популяризацию Линукса, потому что разобраться с ним получалось только при наличии опыта.

Но все изменилось с внедрением так называемых «пакетов».

Теоретические основы

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

Есть и другие преимущества решения:

  1. Просмотр содержимого пакетов доступен при помощи программ-архиваторов.
  2. Разделение на отдельные блоки возможно даже в рамках одной программы.
  3. Открывается простор для подключения сторонних модулей, обновлений.
  4. Обновление можно скачать независимо от дистрибутива Linux.

Если разработчики внесли изменения в какой-либо пакет, скачать понадобится только его, а не весь продукт. При этом ничего не понадобится пересобирать или переустанавливать, достаточно просто заменить конкретный файл. Разработка свободного ПО также заметно упростилась. Отчасти новая фишка в виде «зависимостей» перешла из платформы Microsoft и подобных систем.

Идея заключается в том, что программист использует наработки других разработчиков и созданные ими библиотеки. В коде он ссылается на них и избавляется от необходимости включать в пакеты «лишние модули». Экономится трафик, место на дисках в репозиториях. Последнее особенно важно из-за резко увеличившегося объема новых разработок.

Чтобы снизить риски установки «сырого» ПО, репозитории делят на категории (на примере Debian):

  1. Base Repository – основное хранилище, здесь обычно «лежат» полные дистрибутивы.
  2. Security Updates – обновления безопасности, критически важные для работы платформы.
  3. Stable Updates – стабильные версии обновленных пакетов, расширяющие функционал Linux.
  4. Stable Backports – программы с обратной совместимостью, тестовые пакеты.

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

Форматы пакетов в разных версиях Linux

Единственной существенной проблемой с внедрением пакетов стало появление нескольких форматов (фактически каждый вариант Linux работает со своим стандартом). Ранее все использовали файлы с расширением .TGZ или TAR.GZ, теперь же они остались только в наиболее старых версиях вроде Slackware.

Наиболее популярные форматы пакетов:

  1. DEB – платформа Debian и его ближайших родственников: Ubuntu, MX Linux, Pop!OS, Elementary OS и других.
  2. RPM – разработан компанией Red Hat и внедрен в дистрибутив RHEL, также используется в системах Fedora и CentOS.
  3. TAR.XZ – стандартный формат для дистрибутива Arch Linux и его производных: Anarchy Linux, Artix Linux, Chakra, Manjaro и пр.

Несколько смягчает ситуацию схожесть структуры пакетов разных разработчиков. Поэтому понять, как работать с «другой системой», достаточно легко. Главное, оснастить рабочее место программами для установки, обновления, настройки. Такие функции выполняет менеджер (диспетчер) пакетов – с графическим интерфейсом или только с поддержкой командной строки.

Что такое зависимости пакетов и зачем они нужны

Теперь подробнее о зависимостях. Да, принцип действия внешне схож с теми же библиотеками DLL в Windows, но есть и кардинальные отличия. Например, ссылки обычно делаются только на файлы, интегрированные в полный дистрибутив Linux. Не придется устанавливать пакеты .NET с их «дырками», возникшими при неудачном обновлении.

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

Менеджеры пакетов – виды, назначение

Пакетные менеджеры нужны, в первую очередь, чтобы упростить использование чужого кода. Без них пользователю остается лишь скачивать файлы «по умолчанию» и ограничиваться стандартным функционалом. Зато при наличии программы-диспетчера легко заменить отдельные модули новыми, пусть даже ради эксперимента. Столь же просто вернуть все обратно, если обнаружились ошибки.

Популярные программы:

  1. DPKG
  2. RPM
  3. PACMAN
  4. ZYPPER
  5. PORTAGE

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

DPKG

Инструмент DPKG предназначен для операционной системы Debian. Он включает огромный перечень программ для установки, удаления и хранения пакетов формата .DEB. Процесс проходит на низком уровне вплоть до ручного разрешения зависимостей. Это важно при инсталляции свободного ПО с нестандартным набором функций.

В перечень дополнительных утилит входит:

  1. APT (Advanced Packaging Tool) – работает в командной строке, расширяет совместимость «базового» инструмента на производные вроде Ubuntu, Linux Mint. Иногда его ставят даже на дистрибутивы, основанные на Mandrake (Mandriva, ALT Linux, PCLinuxOS).
  2. Advanced Packaging Tool – аналог APT для Debian, но с графической оболочкой Aptitude, хотя поддерживается и работа в консоли. Инструмент встречается в дистрибутивах от компании Red Hat.
  3. Synaptic – графическая оболочка GUI для управления пакетами в системе Debian или APT-RPM, используемых в дистрибутивах Conectiva Linux. Если операционная система оснащена оконным менеджером GNOME, утилита устанавливается вместе с ним.
  4. GNOME Software – утилита, поставляемая в комплекте графического интерфейса GNOME с версии 3.10. Поддерживает пакеты формата DEB и RPM, плюс обслуживание системной прошивки.

Еще в репозиториях регулярно запрашивается программа AppGrid. Она позиционируется в качестве конкурента стандартному центру приложений Ubuntu. Она быстрее, проще в работе, хотя и имеет «более простой» интерфейс. На другие производные Debian или оригинальную систему поставить этот инструмент не удастся, есть ограничения и по версиям Ubuntu (релизы от 12.04 до 13.10).

RPM

Базовый формат и одновременно пакетный менеджер, созданный компанией Red Hat. Аббревиатура RPM так и расшифровывается – Red Hat Package Manager. Как и DPKG, инструмент имеет несколько утилит для управления пакетами. «Основная» – YUM (Yellowdog Updater, Modified) – дает доступ к общему функционалу через командную строку.

Программа поставляется «по умолчанию» с дистрибутивами Red Hat. В сравнении с APT работает чуть медленнее, зато обладает всем необходимым функционалом. В системах на ядре Fedora с 22-го релиза «стандартом» интегрируется улучшенная версия утилиты под названием DNF. Она стала быстрее, в том числе за счет уменьшенного потребления оперативной памяти.

PACMAN

В операционных системах Arch Linux и ее производных вроде Manjaro устанавливается программное обеспечение Pacman. Функционал включает необходимые возможности – установку и обновление ранее инсталлированных приложений, автоматическое разрешение зависимостей, удаление пакетов и их загрузку для дальнейшей установки.

Списки установленных пакетов автоматически сравниваются с основным сервером. Такой подход позволяет всегда иметь на компьютере текущую версию Linux. При желании архивы с расширением файлов TAR.XZ легко просмотреть обычным архиватором. Внутри находятся файлы программы и описание установки PKGBUILD.

ZYPPER

В системах OpenSuse и SUSE Linux используется менеджер командной строки Zypper. Он создан специально под эти платформы и базируется на библиотеке libzypp. Набор функций – установка пакетов с предварительным скачиванием, просмотр содержимого репозитория, автоматическое разрешение зависимости. Все, что нужно для успешного управления программами.

Поддерживается обновление пакетов с полной заменой файла или в режиме установки патчей. При выборе второго варианта инсталлируется только выбранный блок. Режим актуален для «заплаток» на функции безопасности, когда основной функционал программы остается прежним, зато любые критические ошибки исправляются «под ноль».

PORTAGE

В дистрибутиве Linux под названием Gentoo, несмотря на небольшую распространенность, также имеется собственный инструмент для управления пакетами. Называется такая программа – Portage. Она позволяет собирать комплект из исходников прямо во время установки приложений. В набор функций входит возможность настроить флаги компиляции, собрать пакет под процессор и т.д.

Есть и необходимый перечень базовых возможностей вроде установки, обновления и деинсталляции выбранного ПО. Интересна особенность, позволяющая интегрировать в операционную систему сразу несколько версий одной программы или библиотеки. Список пакетов хранится в виде дерева, участки которого меняются пользователем.

Выводы

Менеджеры пакетов, в зависимости от релиза Linux, могут обладать уникальными возможностями, как в случае Gentoo. Но основной их задачей остается управление базовыми функциями – установкой, обновлением, удалением пакетов. Поэтому различия в перечне настроек касаются больше любителей поэкспериментировать.

Источник: timeweb.com/ru

Серверные решения
Добавить комментарий