Одна из первых вещей, с которой столкнуться новые пользователи при выборе своего дистрибутива Linux, это существование нескольких дистрибутивов с различными способами управления пакетами.
Управление пакетами очень важно в Linux, если вы знаете как использовать несколько менеджеров пакетов, это еще один аспект, показывающий, что вы уже опытный пользователь. Установка программного обеспечения, обновление, обработка зависимостей, удаление программ это очень важные действия для администрирования операционной системы Linux.
Чтобы стать более опытным пользователем в Linux нужно понять, каким образом основные дистрибутивы обрабатывают пакеты программного обеспечения. Поэтому тема сегодняшней статьи - обзор пакетных менеджеров Linux. Мы рассмотрим основные пакетные менеджеры Linux. Главная цель, предоставить основную информацию об этих пакетных менеджерах, но об их использовании будет сказано только несколько слов.
Содержание статьи
- 1. DPKG - система управления пакетами Debian
- 2. RPM (Red Hat Package Manager)
- 3. Pacman - менеджер пакетов Arch Linux
- 4. Zypper - пакетный менеджер OpenSUSE
- 5. Portage - пакетный менеджер Gentoo
- 6. Snap
- 7. Flatpack
- Выводы
1. DPKG - система управления пакетами Debian
Dpkg - это базовая система управления пакетами в Debian. Может использоваться для установки, удаления, хранения и получения информации о .deb пакетах.
Это инструмент низкого уровня и есть дополнительные утилиты, которые помогают пользователям устанавливать пакеты из репозиториев, разрешать зависимости и искать пакеты по названию. Это такие программы, как:
APT (Advanced Packaging Tool)
Очень популярный, мощный инструмент командной строки с открытым исходным кодом для управления пакетами, который намного увеличивает возможности dpkg. Эта утилита используется в Debian и его производных, таких как Ubuntu, Linux Mint. Я уже писал про apt на этом сайте.
Aptitude Package Manager
Это еще одна популярная утилита командной строки для управления пакетами в Debian. Она работает аналогично Apt, но между ними есть некоторые различия. Первоначально он был разработан для Debian, но сейчас может применяться и в Red Hat дистрибутивах.
Synaptic
Synaptic - это графический менеджер пакетов linux, написанный на GTK и использующий apt в качестве бэкенда. Он отлично подходит для пользователей, которые не хотят работать в командной строке. Здесь есть все те же необходимые функции что и в apt.
Gnome Software
Это центр приложений Gnome. Там есть далеко не все программы, которые есть в репозиториях и подход к установке немного другой. Вы устанавливаете не пакеты по отдельности, а саму нужную программу. Обо всём остальном центр приложений заботиться сам, скрывая от вас подробности. Gnome Software поддерживает не только Deb пакеты, но и Rpm в системах, основанных на RHEL, а также snap и flatpack, о которых мы поговорим ниже.
AppGrid
Простенькая альтернатива для центра приложений Ubuntu. Программе очень далеко до функциональности Synaptic. Она позволяет устанавливать приложения так же, как и центр приложений Gnome Software и выглядит очень похоже на Windows Store.
2. RPM (Red Hat Package Manager)
Это базовый формат и система управления пакетами, созданная в компании Red Hat. Так же как и dpkg, это низкоуровневый инструмент, для которого существует несколько утилит, это такие пакетные менеджеры Linux:
YUM (Yellowdog Updater, Modified)
Это популярный менеджер пакетов linux с открытым исходным кодом для командной строки. Он используется для управления пакетами в дистрибутиве Red Hat. Если сравнивать с инструментом apt, то здесь есть все те же функциональные возможности, правда, работает немного медленнее. Написан на Python 2. Немного больше об отличиях формата пакетов rpm и deb можно прочитать в отдельной статье. А про сам Yum есть такая статья.
DNF – Улучшенный Yum
Это пакетный менеджер linux, используемый в дистрибутиве Fedora начиная с версии 18. Он представляет из себя следующее поколение YUM.
Сначала он был создан только для экспериментов, но начиная с Fedora 22 он используется как пакетный менеджер по умолчанию. Он работает почти также как и YUM, для разрешения зависимостей используется библиотека libsolv и hawkey, но отличие от YUM, написан на Python 3. Здесь можно наблюдать увеличение скорости работы, а также уменьшение потребления памяти.
3. Pacman - менеджер пакетов Arch Linux
Этот менеджер пакетов linux разработан командой программистов для дистрибутива ArchLinux. Сейчас, кроме ArchLinux, он используется в Manjaro и еще нескольких малоизвестных дистрибутивах, основанных на ArchLinux.
Здесь поддерживаются все основные возможности - установка программного обеспечения, автоматическое разрешение зависимостей, обновление, удаление пакетов, а также загрузка пакетов программ для последующей установки.
Программа специально спроектирована для удобной работы с пакетами в Arch Linux. А поскольку это система с режимом выпуска в виде роллинг релизов, то этот пакетный менеджер подходит наилучшим образом. Pacman поддерживает систему в актуальном состоянии синхронизируя списки пакетов из основного сервера. Причем существует только одна версия системы - текущая.
Программа написана на Си, а в качестве пакетов используются файлы формата tar.xz, которые на самом деле являются обычными архивами, внутри которых находятся файлы программы и файл описания установки PKGBUILD. Читайте подробнее про установку пакетов в Arch Linux в отдельной статье.
4. Zypper - пакетный менеджер OpenSUSE
Это пакетный менеджер linux для командной строки в дистрибутиве OpenSUSE и SUSE Linux. Разработан специально для этого дистрибутива и использует библиотеку libzypp, в которой реализованы такие общие возможности, как доступ к репозиторию, установка пакетов, разрешение зависимостей, работа с репозториями и многое другое.
Zypper написан на Си и работает намного быстрее чем Yum. Поддерживает различные форматы репозиториев, а также расширения репозиториев. Поддерживается как обычное обновление, так и обновление патчами, во время которого только накладываются патчи на установленные пакеты для исправления проблем с безопасностью. Подробнее - здесь.
5. Portage - пакетный менеджер Gentoo
Этот менеджер пакетов используется в Gentoo, менее популярном, но не менее мощном дистрибутиве. И это один из лучших менеджеров пакетов. Основное преимущество системы Gentoo, это возможность собирать пакеты из исходников во время установки. Это дает очень много полезных вещей, таких как возможность настроить флаги компиляции, включить только нужные функции, а также собрать пакеты именно под свой процессор. Все это поддерживается Portage, базовая функциональность, такая как обновление, удаление пакетов и разрешение зависимостей здесь тоже есть.
Интересной особенностью есть состояния Portage, а также слоты, позволяющие устанавливать несколько версий одной программы или библиотеки в вашей системе. Здесь нет как такового списка пакетов, есть только дерево портов, в котором и содержаться файлы ebuild с инструкциями для сборки всех пакетов. Сохранив дерево можно очень просто откатить систему к предыдущей версии. Подробнее тут.
6. Snap
Универсальный менеджер пакетов разработанный в Canonical, который можно использовать как в Deb, так и в Rpm дистрибутиве. Здесь используется особый формат пакетов, в котором все зависимости программы упаковываются в пакет с ней, поэтому программа оказывается самодостаточной и может запускаться в любой системе, где установлен этот пакетный менеджер. Кроме того, менеджер пакетов snap добавляет безопасности, программам не разрешено использовать те функции, что им не нужны. Более подробно про snap можно почитать в этой статье.
7. Flatpack
Пакетный менеджер Flatpack разработан для Fedora в качестве конкурента для Snap. Он может практически всё то же самое. В пакет программы упаковываются всё её зависимости и она может работать в любой системе где установлено программное обеспечение Flatpack. Безопасность здесь тоже работает. Главное отличие в том, что Flatpack более открыт, чтобы добавить пакет в Snap Store надо подписать соглашение с Canonical, а Flatpack больше похож на формат PPA. Любой человек может создать свой репозиторий и размещать там всё, что ему надо.
Выводы
Как я уже говорил, основная цель статьи - обзор пакетных менеджеров linux, познакомить пользователей с лучшими пакетными менеджерами, а также показать отличия между ними. Конечно, пользователям определенного дистрибутива придется изучать свой менеджер пакетов более детально. Если я упустил важный момент, об одной из программ, напишите в комментариях!
а почему не упомянули о пакетах Puppy?он того стоит,очень достойный дистрибутив.
YaST (Yet another Setup Tool)! Как вы могли забыть про такой замечательный дистрибутив с солидным стажем, как Slackware...
не сказали про синаптик (synaptic) отличный графический мененжер пакетов можно ознакомится по ссылке https://help.ubuntu.ru/wiki/synaptic