Поиск по сайту:

Основы управления пакетами: apt, yum, dnf, pkg


Введение

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

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

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

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

Системы управления пакетами: краткий обзор

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

Хотя их функциональность и преимущества в целом схожи, форматы упаковки и инструменты различаются в зависимости от платформы:

  • Для Debian/Ubuntu: пакеты .deb, установленные с помощью apt и dpkg
  • Для Rocky/Fedora/RHEL: пакеты .rpm, установленные с помощью yum
  • Для FreeBSD: пакеты .txz, установленные с помощью pkg

В Debian и системах на его основе, таких как Ubuntu, Linux Mint и Raspbian, формат пакета — файл .deb. apt, инструмент расширенной упаковки, предоставляет команды, используемые для наиболее распространенных операций: поиск репозиториев, установка коллекций пакетов и их зависимостей, а также управление обновлениями. Команды apt работают как интерфейс к утилите dpkg более низкого уровня, которая обрабатывает установку отдельных файлов .deb в локальной системе. , а иногда вызывается напрямую.

Недавние выпуски большинства производных от Debian дистрибутивов включают единую команду apt, которая предлагает краткий и унифицированный интерфейс для общих операций, которые традиционно обрабатывались более специфичной командой apt-get и apt-кэш.

Rocky Linux, Fedora и другие члены семейства Red Hat используют файлы RPM. Раньше они использовали менеджер пакетов под названием yum. В последних версиях Fedora и ее производных yum был заменен dnf, модернизированным форком, который сохранил большую часть интерфейса yum.

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

Обновление списков пакетов

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

  • Для Debian/Ubuntu: sudo apt update
  • Для Rocky/Fedora/RHEL: dnf check-update
  • Для пакетов FreeBSD: sudo pkg update
  • Для портов FreeBSD: sudo portsnap fetch update

Обновить установленные пакеты

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

Во FreeBSD обновление установленных портов может привести к критическим изменениям или потребовать ручной настройки. Перед обновлением с помощью portmaster лучше прочитать /usr/ports/UPDATING.

  • Для Debian/Ubuntu: sudo apt upgrade
  • Для Rocky/Fedora/RHEL: обновление sudo dnf
  • Для пакетов FreeBSD: обновление sudo pkg

Найти пакет

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

  • Для Debian/Ubuntu: apt search search_string
  • Для Rocky/Fedora/RHEL: dnf search search_string
  • Для пакетов FreeBSD: pkg search search_string

Примечание. В Rocky, Fedora или RHEL вы можете искать пакеты по заголовкам и описаниям вместе, используя dnf search all. Во FreeBSD вы можете искать описания, используя pkg search -D

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

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

  • Для Debian/Ubuntu: apt show package
  • Для Rocky/Fedora/RHEL: dnf info package
  • Для пакетов FreeBSD: pkg info package
  • Для портов FreeBSD: cd /usr/ports/category/port && cat pkg-descr

Установить пакет из репозиториев

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

  • Для Debian/Ubuntu: sudo apt install package
  • Для Rocky/Fedora/RHEL: sudo dnf install package
  • Для пакетов FreeBSD: sudo pkg install package

Установить пакет из локальной файловой системы

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

В системах, производных от Debian, dpkg обрабатывает отдельные файлы пакетов. Если у пакета есть неудовлетворенные зависимости, часто можно использовать gdebi для их извлечения из официальных репозиториев.

В Rocky Linux, Fedora или RHEL dnf используется для установки отдельных файлов, а также для обработки необходимых зависимостей.

  • Для Debian/Ubuntu: sudo dpkg -i package.deb
  • Для Rocky/Fedora/RHEL: sudo dnf install package.rpm
  • Для пакетов FreeBSD: sudo pkg add package.txz

Удалить один или несколько установленных пакетов

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

  • Для Debian/Ubuntu: sudo apt удалить пакет
  • Для Rocky/Fedora/RHEL: sudo dnf erase package
  • Для пакетов FreeBSD: sudo pkg удалить пакет

Получить помощь

В дополнение к веб-документации имейте в виду, что справочные страницы Unix (обычно называемые справочными страницами) доступны для большинства команд из оболочки. Чтобы прочитать страницу, используйте man:

  1. man page

В man вы можете перемещаться с помощью клавиш со стрелками. Нажмите/для поиска текста на странице и q для выхода.

  • Для Debian/Ubuntu: man apt
  • Для Rocky/Fedora/RHEL: man dnf
  • Для пакетов FreeBSD: man pkg
  • Для портов FreeBSD: man-порты

Заключение и дальнейшее чтение

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

  • В этом руководстве подробно рассматривается управление пакетами Ubuntu и Debian.
  • Существует официальное руководство для самого dnf.
  • В этом руководстве рассматривается управление пакетами FreeBSD с помощью pkg.
  • Раздел об использовании коллекции портов.