Менеджеры пакетов Linux. Менеджеры пакетов Исследование менеджера пакетов и репозитория ос linux

Мы сравним разные менеджеры пакетов Linux. Между всеми дистрибутивами Linux одна из вещей, которыми они делятся, - это необходимость установки новых программных пакетов в систему. В зависимости от дистрибутива доступны различные менеджеры пакетов, позволяющие легко и быстро устанавливать, управлять и удалять пакеты. Менеджеры пакетов очень хорошо подходят для упрощения установки, с обычными местами установки и конфигурациями. В этой статье мы обсудим различные доступные менеджеры пакетов, какие дистрибутивы они могут использовать, и что делает их уникальными. Мы рассмотрим менеджеров пакетов на базе Debian, менеджеров пакетов RedHat Enterprise Linux (RHEL) и других менеджеров пакетов, разработанных специально для вас.

Менеджеры пакетов на базе Debian

Ubuntu и Debian сегодня считаются одной из наиболее широко используемых на рынке настольных Linux-операционных систем. Их менеджеры пакетов разделены, причем система управления пакетами самого низкого уровня - «dpkg», для «Debian Package» - сокращение. Это программное обеспечение для управления пакетами barebones, с инструментами для установки, удаления и создания пакетов.

Что недостает dpkg, так это более сложные функции - такие функции, как загрузка пакетов из Интернета или автоматическая установка зависимостей, невозможны через dpkg. Возможность сделать это из Интернета очень полезна, поскольку позволяет пользователям добавлять репозитории для пакетов, что значительно увеличивает выбор программного обеспечения, которое может быть легко установлено в системе. Он также может значительно упростить процесс установки программного обеспечения, поскольку он может легко находить и устанавливать пакет только с одной командой.

Менеджер пакетов APT

Именно здесь вступают в действие интерфейсы, такие как apt и aptitude. APT, сокращенный для Advanced Package Tool, намного более совершенен по функциональности по сравнению с dpkg. Он также может устанавливать, удалять и создавать пакеты, однако его функциональность идет гораздо дальше. APT может автоматически обновлять ваши пакеты, устанавливать зависимости, а также автоматически загружать ваши пакеты из Интернета. Это один из самых распространенных менеджеров пакетов, установленных на современных дистрибутивах, с предустановленным на Ubuntu, Debian и большинством других операционных систем на базе Debian.

Менеджер пакетов Aptitude

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

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

Менеджеры пакетов RedHat Enterprise Linux (RHEL)

Менеджер пакетов RPM

RedHat и CentOS - одна из наиболее широко используемых серверных операционных систем, найденных сегодня на серверах. Основным программным обеспечением управления пакетами, установленным в этих системах, является RPM, что сокращает работу Red Hat Package Manager. Этот менеджер пакетов также выполняет основные операции, такие как установка и удаление пакетов, и, как и dpkg, также не может управлять пакетами или устанавливать их непосредственно из Интернета.

Менеджер пакетов YUM

Как и операционные системы на базе Debian, операционные системы RHEL также имеют собственное программное обеспечение для управления пакетами. YUM, сокращение от Yellow Dog Updater, является самым популярным выбором в качестве интерфейса RPM. Он открывает намного больше возможностей для файлов RPM через репозитории, отслеживает, что установлено в системе, упрощает обновление и многое другое. Это эквивалент менеджера пакетов APT на основе RHEL.

DNF, сокращенный для Dandified Packaging Tool, является более модернизированной и расширенной версией менеджера YUM, включающей функции YUM, одновременно повышая производительность и использование ресурсов. На данный момент только Fedora использует эту версию YUM следующего поколения, но, надеюсь, мы увидим, что в будущем она будет распространяться на большее количество операционных систем.

Есть несколько других инструментов управления пакетами, доступных для систем на основе RPM, таких как up2date, urpmi и ZYpp. Однако они не так широко используются как YUM или DNF.

Другие менеджеры пакетов

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

Pacman - менеджер пакетов, найденный в Arch Linux. Pacman - единственный инструмент управления пакетами, найденный на Arch, что делает его не интерфейсом. Arch Linux - это скользящая версия операционной системы, причем обновления добавляются каждый день. Есть только несколько команд с pacman, предназначенных для поиска, установки и удаления пакетов. Этот менеджер пакетов может подключаться к Интернету и приобретать его пакеты оттуда, делая его более удобным для пользователя. Тем не менее, pacman предназначен для установки программного обеспечения из репозитория Arch, что делает его невозможным для установки из сторонних репозиториев.

Конструктор пакетов ABS

ABS, сокращение от Arch Build System, представляет собой систему инструментов, предназначенных для создания устанавливаемых пакетов программного обеспечения для Arch Linux из исходного кода. Это состоит из нескольких инструментов, которые работают вместе для создания пакетов. Этими инструментами являются все независимые программы, такие как makepkg, pacman, asp и т. Д. Способ создания / установки пакета с использованием АБС отличается от обычного дистрибутива Linux. Вместо установки предварительно скомпилированных пакетов вам нужно создать файл PKGBUILD из ветки Svn или Git, используя пакет asp. Оттуда вы используете команду makepkg, которая использует файл PKGBUILD для загрузки и компиляции исходного кода вашей системы. Это делает ABS немного менее интуитивным методом установки пакетов на Arch Linux. Он также имеет несколько других применений, таких как настройка существующих пакетов или создание и установка настраиваемого ядра.

Менеджер пакетов портов

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

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

PS. Если вам понравился этот пост при сравнении разных менеджеров пакетов Linux, поделитесь им со своими друзьями в социальных сетях, используя кнопки слева, или просто оставьте ответ ниже. Благодарю.

Обновление (апрель 09, 2018): Исправлены некоторые неточности в отношении набора инструментов компоновщика пакетов ABS.

Эта статья незакончена. Вы можете помочь проекту дополнив статью.

Synaptic - это графическая программа, позволяющая управлять пакетами в Ubuntu. Она совмещает в себе все возможности консольной системы управления пакетами apt и удобство графического интерфейса. С помощью Synaptic вы можете устанавливать, удалять, настраивать и обновлять пакеты в вашей системе, просматривать списки доступных и установленных пакетов, управлять репозиториями и обновлять систему до новой версии.

Установка

Начиная с Ubuntu 11.10 Synaptic не распостраняется в комплекте стандартных программ. Установить его можно нажав на ссылку слева или введя в терминале команду:

sudo apt-get install synaptic

Запуск и внешний вид

Перед запуском программы вы увидите окно, в которое вам нужно будет ввести свой пароль, для дальнейшей работы с приложением.

Для запуска Synaptic откройте Главное меню и наберите в поиске synaptic . Также Synaptic можно запустить введя в терминале команду:

sudo synaptic

При запуске вы увидите главное окно программы: Главное меню вверху, панель с несколькими кнопками, роль которых станет ясна чуть позже.

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

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

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

Для получения подробной информации о пакете, кликните по нему правой кнопкой мыши и в появившемся меню выберите Свойства .

Управление ПО

Установка

    Щелкните по кнопке Обновить

    Правый клик на нужном пакете и выберите в появившемся меню Отметить для установки , или нажмите Ctrl + I . Если пакет требует установки другого пакета, то появиться диалоговое окно с изменениями которые будут сделаны, если вы действительно хотите продолжить установку, то щелкните по клавише Применить или нажмите Ctrl + P .

    Для установки, нажмите кнопку Применить

Удаление

    Правый клик на нужном пакете и выберите в появившемся меню выберите Отметить для удаления .

    Появиться диалоговое окно с изменениями которые будут сделаны, если вы действительно хотите продолжить удаление, то щелкните по клавише «Применить» или нажмите Ctrl + P .

    Для удаления, нажмите кнопку «Применить» на главной панели Менеджера пакетов Synaptic.

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

Обновление

    Щелкните по кнопке Обновить или нажмите Ctrl + R для того чтобы скачать список самых последних версий ПО.

    Правий клик на нужном пакете и выберите в появившемся меню Отметить для обновления .

    Применить на главной панели Менеджера пакетов Synaptic.

Обновление всей системы

Synaptic предоставляет два варианта обновления системы

    Умное обновление попытается разрешить конфликты пакетов перед обновлением системы. Действие умного обновления аналогично действию команды apt-get dist-upgrade .

    Стандартное обновление

    Стандартное обновление обновит только те пакеты, которые не требуют установки дополнительных зависимостей.

По умолчанию ynaptic использует умное обновление. Для того чтобы изменить метод обновления системы откройте Настройки→Параметры→Основные и выберите требуемый способ в Обновление системы .

    Щелкните по кнопке Обновить или нажмите Ctrl + R для того чтобы скачать список самых последних версий ПО.

    Нажмите на кнопку Отметить для обновления или нажмите Ctrl + G для того, чтобы Synaptic отметил для обновления все пакеты.

    Для обновления, нажмите кнопку Применить на главной панели Менеджера пакетов Synaptic.

Как исправить сломанные пакеты

«Сломанные пакеты» - это пакеты которые имеют неудовлетворённые зависимости. Если сломанные пакеты обнаружены, то Synaptic не позволит проводить ни каких изменений в системе с пакетами до тех пор пока все сломанные пакеты не будут исправлены.

Для исправления сломанных пакетов

    Выберите Правка→Исправить пакеты с ошибками в главном меню.

    Выберите Внести отмеченные изменения в меню Правка или нажмите Ctrl + P

    Подтвердите изменения, щелкнув по кнопке Применить .

Горячие клавиши в Synaptic

Команда Сочетание клавиш
Обновить список доступных пакетов Ctrl + R
Открыть диалоговое окно поиска Ctrl + F
Показать окно с свойствами выбранного пакета Ctrl + O
Отметить выбранный(е) пакет(ы) для установки Ctrl + I
Отметить выбранный(е) пакет(ы) для обновления Ctrl + U
Отметить выбранный(е) пакет(ы) для удаления Delete
Отметить выбранный(е) пакет(ы) для полного удаления Shift + Delete
Снять какие-либо изменения в пакетах Ctrl + N
Отметить все возможные обновления Ctrl + G
Быстрая установка специфической версии для пакета Ctrl + E
Отменить последнее изменение Ctrl + Z
Повторить последнее изменение Ctrl + Shift + Z
Применить все выбранные действия Ctrl + P
Выйти из Synaptic Ctrl + Q

Настройка кэширования пакетов

Настройки кэширования пакетов находятся в двух местах. Первое – в самом synaptic, окно с настройками кэширования вызывается через меню Настройки→Параметры→Файлы .

Кэш хранится в папке /var/cache/apt/archives/

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

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

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

    Очистить кэш - полностью очищает кэш.

В разделе Файлы истории устанавливаются настройки времени хранения истории установок, либо отключается удаление этой истории вообще.

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

Sudo nano /etc/apt/apt.conf.d/20archive

Эти настройки имеют следующий вид:

APT::Archives::MaxAge "30"; APT::Archives::MinAge "2"; APT::Archives::MaxSize "500";

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

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

Что такое зависимости пакетов

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

Система пакетов

Практически любой софт устанавливаемый в современную linux систему можно найти в Интернете. Он может быть предоставлен разработчиками конкретного дистрибутива через официальные репозитарии (хранилища программного обеспечения, которые могут содержать тысячи пакетов, каждый из которых был скомпилирован, протестирован и поддерживается для распространения и использования в данном дистрибутиве linux ) или доступен в виде исходного кода, который можно загрузить и установить вручную. Поскольку разные семейства дистрибутивов linux используют разные системы упаковки (Debian - пакеты в формате deb , CentOS - rpm формат, openSUSE - тоже rpm но созданный специально для openSUSE ), пакет, предназначенный для одного дистрибутива, не будет совместим с другим дистрибутивом. Большинство дистрибутивов linux входят в одно из трех основных семейств linux , включенных в сертификацию LFCS .

Высоко- и низкоуровневые инструменты управления пакетами.

При решении различных задач по управлению пакетами программного обеспечения, необходимо знать, что существуют два типа утилит: низкоуровневые инструменты (производящие фактическую установку, обновление и удаление файлов пакетов), и высокоуровневые инструменты (отвечают за выполнение задач по разрешению зависимостей и поиска метаданных - так называемые "данные о данных"). Низкоуровневые системы управления пакетами:
  • Debian , Ubuntu и подобные - менеджер пакетов dpkg
  • CentOS - менеджер пакетов rpm
  • OpenSUSE - менеджер пакетов rpm (opensuse )
Высокоуровневые системы управления пакетов:
  • Debian , Ubuntu и подобные - apt-get/aptitude
  • CentOS - менеджер пакетов yum
  • OpenSUSE - менеджер пакетов zipper
Dpkg - низкоуровневый пакетный менеджер в Debian linux Dpkg умеет устанавливать, удалять, предоставлять информацию и создавать deb пакеты, однако он не может автоматически загружать и устанавливать необходимые зависимости для конкретного пакета. Apt-get - высокоуровневый пакетный менеджер в Debian linux и производных дистрибутивах. Apt-get представляет из себя простой способ получения и установки необходимых пакетов из различных источников, с разрешением зависимостей, через командную строку. В отличии от dpkg , apt-get не работает напрямую с .deb файлами пакетов, только пакетом по его имени. Aptitude , это еще один высокоуровневый инструмент управления пакетами в debian -подобных операционных системах и может быть использован для управления пакетами (установка, обновление и удаление пакетов с автоматическим разрешениме зависимостей), быстрым и простым способом. Он обеспечивает те же функциональные возможности что и apt-get , плюс некоторые расширенные, такие как доступ к нескольким версиям пакета. Rpm - система управления пакетами, используемая Linux Standard Base (LSB) - совместимыми дистрибутивами для низкоуровневой обработки пакетов. Как и dpkg , он может запрашивать, устанавливать, проверять, обновлять и удалять пакеты, чаще используется в дистрибутивах на базе Fedora , таких как RHEL и CentOS . Yum - высокоуровневый инструмент для работы с пакетами (установка, удаление, обновление), с управлением зависимостями в системах на основе RPM пакетов. Yum как apt-get и aptitude , работает с репозитариями

Распространенные задачи низкоуровневых инструментов.

1. Установка пакета из скомпилированного *.deb или *.rpm файла.

Минус подобной установки, это невозможность разрешения зависимостей пакета. Вероятней всего вы будете использовать данный способ установки, если в репозитариях соответствующее ПО отсутствует и не может быть установлено с помощью инструментов высокого уровня. В данном случае, пакет не сможет скачать и установить зависимости, если они ему потребуются, и установка будет прервана ошибкой. # dpkg -i file.deb # rpm -i file.rpm Не пытайтесь устанавливать в CentOS , rpm пакет, скомпилированный для OpenSUSE , и наоборот.

2. Обновление пакета из скомпилированного файла.

Обновить пакет ПО не доступный из репозитариев, возможно только вручную. # dpkg -i file.deb # rpm -U file.rpm

3. Список установленных пакетов

Если в ваше распоряжение попала уже работающая система, будет не лишним узнать, что на ней установлено: # dpkg -l # rpm -qa Если вам нужно узнать, установлен-ли какой-то конкретный пакет, можно воспользоваться командой grep . перенаправив на нее вывод менеджера пакетов: # dpkg -l | grep apache2-mpm-itk ii apache2-mpm-itk 2.2.22-13+deb7u6 amd64 multiuser MPM for Apache 2.2 # rpm -qa | grep httpd-2.4.6 httpd-2.4.6-45.el7.centos.4.x86_64 Еще один способ получить аналогичный результат: # dpkg --status package_name # rpm -q package_name 4. Какому пакету принадлежит файл. # dpkg --search my.cnf mysql-common: /etc/mysql/my.cnf # rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64

Распространенные задачи высокоуровневых инструментов

1. Поиск пакетов

# aptitude update && aptitude search package_name # zypper refresh && zypper search package_name # yum search package_name если yum получает ключ search all , поиск производится не только по имени пакета но и по описанию # yum search all package_name Каким пакетом установлен файл # yum whatprovides "*/server.cnf" 1:mariadb-server-5.5.52-1.el7.x86_64: The MariaDB server and related files Repo: base Matched from: Filename: /etc/my.cnf.d/server.cnf

2. Установка пакета из репозитария

При установке пакета вам может быть предложено подтвердить установку после того, как менеджер пакетов разрешит все зависимости. # aptitude update && aptitude install package_name # zypper refresh && zypper install package_name # yum update && yum install package_name

3. Удаление пакетов

Если aptitude указан ключ remove , пакет будет удален, за исключением конфигурационных файлов. Что-бы удалить все следы установки пакета, нужно использовать ключ purge . # aptitude remove/purge package_name # yum erase package_name В OpenSUSE обратите внимание на знак "минус" перед именем пакета. # zypper remove -package_name Практически любой менеджер пакетов потребует подтвердить удаление пакета.

4. Просмотр инфоормации о пакете

Вывод информации о пакете mariadb-server # aptitude show mariadb-server # yum info mariadb-server # zypper info mariadb-server Удачи.

Что такое менеджер пакетов?

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

Зачастую, пакет представляет собой просто отдельную программу. Например, клиент мгновенных сообщений gaim находится в пакете Debian с таким же именем. С другой стороны, для программ вполне нормально состоять из нескольких взаимосвязанных пакетов. Например, графический редактор gimp состоит не только из пакета gimp , но и из пакета gimp-data ; так же доступны необязательные пакеты с дополнениями (содержащими эзотерические данные, документацию и т.д.). Несколько небольших связанных программ могут входить в один пакет, например, пакет fileutils содержит несколько общих команд Unix, таких как ls , cp и т.д.

Некоторым пакетам для работы требуются другие пакеты. В Debian пакеты могут зависеть от других пакетов, рекомендовать , предлагать , ломать их или конфликтовать с ними.

    Если пакет A зависит от другого пакета B, то B требуется для правильной работы A. Например, пакет gimp зависит от пакета gimp-data , поскольку необходимо гарантировать, что графическому редактору GIMP доступны необходимые файлы данных.

    Если пакет A рекомендует другой пакет B, то пакет B предоставляет важную дополнительную функциональность пакету A, которая желательна в большинстве случаев. Например, пакет mozilla-browser рекомендует пакет mozilla-psm , который добавляет поддержку безопасной передачи данных веб-браузеру Mozilla . В то время как пакет mozilla-psm не строго требуется для работы Mozilla, большинство пользователей хотят, чтобы Mozilla поддерживал безопасную передачу конфиденциальных данных (таких как номера кредитных карт).

    Если пакет A предлагает другой пакет B, то пакет B предоставляет функциональность, которая может улучшить пакет A, но не является необходимой в большинстве случаев. Например, пакет kmail предлагает пакет gnupg , содержащий программу для шифрования, которая может использоваться KMail .

    Если пакет A конфликтует с другим пакетом B, то эти два пакета не могут быть установлены одновременно. Например, пакет fb-music-hi конфликтует с пакетом fb-music-low , поскольку они предоставляют альтернативные наборы музыки для игры Frozen Bubble .

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

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


Далее следует джентльменский набор необходимых для повседневной рутины команд основных Linux дистрибутивов: установить, обновить и удалить пакет, накатить обновления, проверить зависимости, установить принадлежность файла пакету и пр.

Debian и родственные

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


То, что в примерах aptitude не значит, что он правильнее, чем apt-get . Для меня это всего лишь дело привычки.


$ aptitude install package #установить пакет; $ aptitude safe-upgrade package #обновить пакет; $ aptitude update #проверить и установить обновления; $ aptitude remove package #удалить пакет; $ aptitude purge package #удалить пакета с концами, все данные и настройки; $ apt-get dist-upgrade #обновить ОС, killer-feature и оно работает! $ aptitude search package #искать пакет. $ apt-cache depends package #зависимости пакета; $ apt-cache rdepends package #обратные зависимости от пакета.

Некоторые функции доступны с дополнительным МП dpkg .


$ dpkg -l #список установленных программ; $ dpkg -L package #список файлов пакета