Вступление
Большинство современных Unix-подобных операционных систем предлагают централизованный механизм поиска и установки программного обеспечения. Программное обеспечение обычно распространяется в видеpackages, хранящегося вrepositories. Работа с пакетами известна какpackage management. Пакеты предоставляют основные компоненты операционной системы, а также разделяемые библиотеки, приложения, службы и документацию.
Система управления пакетами делает гораздо больше, чем разовая установка программного обеспечения. Он также предоставляет инструменты для обновления уже установленных пакетов. Репозитории пакетов помогают гарантировать, что код проверен для использования в вашей системе, и что установленные версии программного обеспечения были одобрены разработчиками и сопровождающими пакетов.
При настройке серверов или сред разработки часто необходимо выходить за рамки официальных репозиториев. Пакеты в стабильном выпуске дистрибутива могут быть устаревшими, особенно когда речь идет о новом или быстро меняющемся программном обеспечении. Тем не менее, управление пакетами является жизненно важным навыком для системных администраторов и разработчиков, а богатство упакованного программного обеспечения для крупных дистрибутивов является огромным ресурсом.
Это руководство предназначено как краткий справочник по основам поиска, установки и обновления пакетов в различных дистрибутивах и должно помочь вам перенести эти знания между системами.
Системы управления пакетами: краткий обзор
Большинство систем пакетов построены на коллекциях файлов пакетов. Файл пакета обычно представляет собой архив, который содержит скомпилированные двоичные файлы и другие ресурсы, составляющие программное обеспечение, а также сценарии установки. Пакеты также содержат ценные метаданные, в том числе ихdependencies, список других пакетов, необходимых для их установки и запуска.
Хотя их функциональные возможности и преимущества в целом схожи, форматы и инструменты упаковки зависят от платформы:
Операционная система | Формат | Инструменты) |
---|---|---|
Debian |
|
|
Ubuntu |
|
|
CentOS |
|
|
мягкая фетровая шляпа |
|
|
FreeBSD |
Порты, |
|
В Debian и системах на его основе, таких как Ubuntu, Linux Mint и Raspbian, формат пакета - это файл.deb
. APT, Advanced Packaging Tool, предоставляет команды, используемые для наиболее распространенных операций: поиска в репозиториях, установки коллекций пакетов и их зависимостей, а также управления обновлениями. Команды APT работают как интерфейс к служебной программе нижнего уровняdpkg
, которая обрабатывает установку отдельных файлов.deb
в локальной системе, а иногда вызывается напрямую.
Последние выпуски большинства дистрибутивов, производных от Debian, включают командуapt
, которая предлагает краткий и унифицированный интерфейс для общих операций, которые традиционно выполнялись более конкретнымиapt-get
иapt-cache
. Его использование не является обязательным, но может упростить некоторые задачи.
CentOS, Fedora и другие члены семейства Red Hat используют RPM-файлы. В CentOSyum
используется для взаимодействия как с отдельными файлами пакетов, так и с репозиториями.
В последних версиях Fedorayum
был замененdnf
, модернизированной вилкой, которая сохраняет большую часть интерфейсаyum
.
Система бинарных пакетов FreeBSD администрируется с помощью командыpkg
. FreeBSD также предлагает коллекцию портов, структуру локальных каталогов и инструменты, которые позволяют пользователю извлекать, компилировать и устанавливать пакеты напрямую из исходного кода с использованием файлов Makefiles. Обычно гораздо удобнее использоватьpkg
, но иногда предварительно скомпилированный пакет недоступен, или вам может потребоваться изменить параметры времени компиляции.
Обновление списков пакетов
Большинство систем хранят локальную базу данных пакетов, доступных из удаленных репозиториев. Лучше обновить эту базу данных перед установкой или обновлением пакетов. В качестве частичного исключения из этого шаблонаyum
иdnf
будут проверять наличие обновлений перед выполнением некоторых операций, но вы можете в любой момент спросить их, доступны ли обновления.
система | команда |
---|---|
Debian / Ubuntu |
|
|
|
CentOS |
|
мягкая фетровая шляпа |
|
Пакеты FreeBSD |
|
Порты FreeBSD |
|
Обновление установленных пакетов
Убедиться в том, что все установленное на машине программное обеспечение обновлено, было бы огромным делом без системы пакетов. Вам придется отслеживать изменения в исходном коде и оповещения о безопасности для сотен различных пакетов. Хотя менеджер пакетов не решает все проблемы, с которыми вы сталкиваетесь при обновлении программного обеспечения, он позволяет поддерживать большинство компонентов системы с помощью нескольких команд.
В FreeBSD обновление установленных портов может привести к серьезным изменениям или потребовать шагов ручной настройки. Лучше всего прочитать/usr/ports/UPDATING
перед обновлением с помощьюportmaster
.
система | команда | Заметки |
---|---|---|
Debian / Ubuntu |
|
По возможности обновляет только установленные пакеты. |
|
Может добавлять или удалять пакеты для удовлетворения новых зависимостей. |
|
|
Нравится |
|
|
Нравится |
|
CentOS |
|
|
мягкая фетровая шляпа |
|
|
Пакеты FreeBSD |
|
|
Порты FreeBSD |
|
Использует |
|
Устанавливает |
Найти пакет
Большинство дистрибутивов предлагают графический или управляемый меню интерфейс для коллекций пакетов. Это может быть хорошим способом просмотра по категориям и поиска нового программного обеспечения. Однако часто самый быстрый и эффективный способ найти пакет - это поиск с помощью инструментов командной строки.
система | команда | Заметки |
---|---|---|
Debian / Ubuntu |
|
|
|
||
CentOS |
|
|
|
Ищет все поля, включая описание. |
|
мягкая фетровая шляпа |
|
|
|
Ищет все поля, включая описание. |
|
Пакеты FreeBSD |
|
Поиск по имени. |
|
Поиск по имени, возвращение полных описаний. |
|
|
Описание поиска. |
|
Порты FreeBSD |
|
Поиск по имени. |
|
Ищет комментарии, описания и зависимости. |
Просмотр информации о конкретном пакете
Решая, что устанавливать, часто полезно прочитать подробные описания пакетов. Наряду с читаемым человеком текстом они часто включают метаданные, такие как номера версий и список зависимостей пакета.
система | команда | Заметки |
---|---|---|
Debian / Ubuntu |
|
Показывает информацию о пакете из локального кэша. |
|
||
|
Показывает текущий установленный статус пакета. |
|
CentOS |
|
|
|
Перечисляет зависимости для пакета. |
|
мягкая фетровая шляпа |
|
|
|
Перечисляет зависимости для пакета. |
|
Пакеты FreeBSD |
|
Показывает информацию об установленном пакете. |
Порты FreeBSD |
|
Установить пакет из репозитория
Как только вы узнаете имя пакета, вы можете установить его и его зависимости одной командой. В общем, вы можете предоставить несколько пакетов для установки, просто перечислив их все.
система | команда | Заметки |
---|---|---|
Debian / Ubuntu |
|
|
|
Устанавливает все перечисленные пакеты. |
|
|
Предполагает «да», когда |
|
|
Отображает цветной индикатор выполнения. |
|
CentOS |
|
|
|
Устанавливает все перечисленные пакеты. |
|
|
Предполагает «да», когда |
|
мягкая фетровая шляпа |
|
|
|
Устанавливает все перечисленные пакеты. |
|
|
Предполагает «да», когда |
|
Пакеты FreeBSD |
|
|
|
Устанавливает все перечисленные пакеты. |
|
Порты FreeBSD |
|
Строит и устанавливает порт из исходников. |
Установить пакет из локальной файловой системы
Иногда, даже если программное обеспечение официально не упаковано для данной операционной системы, разработчик или поставщик предложит загрузить файлы пакета. Обычно вы можете получить их с помощью своего веб-браузера или черезcurl
в командной строке. Когда пакет находится в целевой системе, его часто можно установить с помощью одной команды.
В системах, производных от Debian,dpkg
обрабатывает отдельные файлы пакетов. Если у пакета есть неудовлетворенные зависимости,gdebi
часто можно использовать для их получения из официальных репозиториев.
В системах CentOS и Fedorayum
иdnf
используются для установки отдельных файлов, а также будут обрабатывать необходимые зависимости.
система | команда | Заметки |
---|---|---|
Debian / Ubuntu |
|
|
|
Устанавливает и использует |
|
CentOS |
|
|
мягкая фетровая шляпа |
|
|
Пакеты FreeBSD |
|
|
|
Устанавливает пакет, даже если он уже установлен. |
Удалить один или несколько установленных пакетов
Поскольку менеджер пакетов знает, какие файлы предоставлены данным пакетом, он обычно может их чисто удалить из системы, если программное обеспечение больше не требуется.
система | команда | Заметки |
---|---|---|
Debian / Ubuntu |
|
|
|
||
|
Удаляет ненужные пакеты. |
|
CentOS |
|
|
мягкая фетровая шляпа |
|
|
Пакеты FreeBSD |
|
|
|
Удаляет ненужные пакеты. |
|
Порты FreeBSD |
|
|
|
Удаляет установленный порт. |
Командаapt
Администраторы дистрибутивов семейства Debian обычно знакомы сapt-get
иapt-cache
. Менее известен упрощенный интерфейсapt
, разработанный специально для интерактивного использования.
Традиционное командование | apt Эквивалент |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Хотяapt
часто является более быстрым сокращением для данной операции, он не предназначен для полной замены традиционных инструментов, и его интерфейс может меняться между версиями для повышения удобства использования. Если вы используете команды управления пакетами внутри сценария или конвейера оболочки, рекомендуется использоватьapt-get
иapt-cache
.
Получить помощь
В дополнение к веб-документации имейте в виду, что страницы руководства Unix (обычно обозначаемые какman pages) доступны для большинства команд из оболочки. Чтобы прочитать страницу, используйтеman
:
man page
Вman
вы можете перемещаться с помощью клавиш со стрелками. Нажмите/ для поиска текста на странице иq для выхода.
система | команда | Заметки |
---|---|---|
Debian / Ubuntu |
|
Обновление локальной базы данных пакетов и работа с пакетами. |
|
Запрос локальной базы данных пакетов. |
|
|
Работа с отдельными файлами пакетов и запрос установленных пакетов. |
|
|
Работа с более лаконичным и удобным интерфейсом для большинства основных операций. |
|
CentOS |
|
|
мягкая фетровая шляпа |
|
|
Пакеты FreeBSD |
|
Работа с предварительно скомпилированными бинарными пакетами. |
Порты FreeBSD |
|
Работа с коллекцией портов. |
Заключение и дальнейшее чтение
В этом руководстве представлен обзор основных операций, на которые можно сделать перекрестные ссылки между системами, но они лишь поверхностно затрагивают сложную тему. Для более подробной информации о данной системе, вы можете обратиться к следующим ресурсам:
-
This guide подробно описывает управление пакетами Ubuntu и Debian.
-
ЕстьFedora wiki page about
dnf
иofficial manual fordnf
itself. -
This guide охватывает управление пакетами FreeBSD с помощью
pkg
. -
FreeBSD Handbook содержитsection on using the Ports Collection.