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

Управление пакетами Linux с помощью Yum, RPM, Apt, Dpkg, Aptitude и Zypper. Часть 9


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

Посмотрите следующее видео, в котором рассказывается о программе сертификации Linux Foundation.

Эта статья представляет собой часть 9 из длинной серии из 10 руководств. Сегодня в этой статье мы расскажем вам об управлении пакетами Linux, которые необходимы для сдачи сертификационного экзамена LFCS.

Управление пакетами

Короче говоря, управление пакетами — это метод установки и обслуживания (который включает в себя также обновление и, возможно, удаление) программного обеспечения в системе.

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

Как работают системы управления пакетами

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

Упаковочные системы

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

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

Пакетные инструменты высокого и низкого уровня

Чтобы эффективно выполнять задачу управления пакетами, вам необходимо знать, что у вас есть два типа доступных утилит: инструменты низкого уровня (которые на серверной стороне выполняют фактическую установку, обновление и удаление файлов пакетов) и инструменты высокого уровня (которые отвечают за обеспечение выполнения задач разрешения зависимостей и поиска метаданных — «данных о данных»).

DISTRIBUTION LOW-LEVEL TOOL HIGH-LEVEL TOOL
 Debian and derivatives  dpkg  apt-get / aptitude
 CentOS  rpm  yum
 openSUSE  rpm  zypper

Давайте посмотрим описание инструментов низкого и высокого уровня.

dpkg — это менеджер пакетов низкого уровня для систем на базе Debian. Он может устанавливать, удалять, предоставлять информацию и собирать пакеты *.deb, но не может автоматически загружать и устанавливать соответствующие зависимости.

Подробнее: 15 примеров команд dpkg

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

Подробнее: 25 примеров команд apt-get

aptitude — это еще один менеджер пакетов высокого уровня для систем на базе Debian, который можно использовать для быстрого и простого выполнения задач управления (установка, обновление и удаление пакетов, а также автоматическая обработка разрешения зависимостей). . Он предоставляет ту же функциональность, что и apt-get, а также дополнительные, например, доступ к нескольким версиям пакета.

rpm — это система управления пакетами, используемая дистрибутивами, совместимыми со стандартом Linux Standard Base (LSB), для низкоуровневой обработки пакетов. Как и dpkg, он может запрашивать, устанавливать, проверять, обновлять и удалять пакеты и чаще используется в дистрибутивах на базе Fedora, таких как RHEL и CentOS.

Подробнее: Примеры команд для скорости 20 об/мин

yum добавляет функции автоматического обновления и управления пакетами с управлением зависимостями в системы на базе RPM. Как инструмент высокого уровня, такой как apt-get или aptitude, yum работает с репозиториями.

Подробнее: 20 примеров команд yum

Обычное использование инструментов низкого уровня

Наиболее частые задачи, которые вы будете выполнять с помощью инструментов низкого уровня, следующие:

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

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

dpkg -i file.deb 		[Debian and derivative]
rpm -i file.rpm 		[CentOS / openSUSE]

Примечание. Не пытайтесь установить на CentOS файл *.rpm, созданный для openSUSE, и наоборот!

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

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

dpkg -i file.deb 		[Debian and derivative]
rpm -U file.rpm 		[CentOS / openSUSE]
3. Список установленных пакетов

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

dpkg -l 		[Debian and derivative]
rpm -qa 		[CentOS / openSUSE]

Если вы хотите узнать, установлен ли конкретный пакет, вы можете передать вывод вышеуказанных команд в grep, как описано в разделе «Управление файлами в Linux — часть 1» этой серии. Предположим, нам нужно проверить, установлен ли пакет mysql-common в системе Ubuntu.

dpkg -l | grep mysql-common

Еще один способ определить, установлен ли пакет.

dpkg --status package_name 		[Debian and derivative]
rpm -q package_name 			[CentOS / openSUSE]

Например, давайте выясним, установлен ли в нашей системе пакет sysdig.

rpm -qa | grep sysdig

4. Выясняем, какой пакет установил файл
dpkg --search file_name
rpm -qf file_name

Например, какой пакет установил pw_dict.hwm?

rpm -qf /usr/share/cracklib/pw_dict.hwm

Общее использование инструментов высокого уровня

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

1. Поиск посылки

aptitude update обновит список доступных пакетов, а aptitude search выполнит фактический поиск имя_пакета.

aptitude update && aptitude search package_name 

При выборе параметра поиска по всем yum будет искать package_name не только в именах пакетов, но и в описаниях пакетов.

yum search package_name
yum search all package_name
yum whatprovides “*/package_name”

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

yum whatprovides “*/sysdig”

whatprovides сообщает yum выполнить поиск в пакете, который предоставит файл, соответствующий приведенному выше регулярному выражению.

zypper refresh && zypper search package_name		[On openSUSE]
2. Установка пакета из репозитория

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

aptitude update && aptitude install package_name 		[Debian and derivatives]
yum update && yum install package_name 			[CentOS]
zypper refresh && zypper install package_name 		[openSUSE]
3. Удаление пакета

Опция удалить удалит пакет, но файлы конфигурации останутся нетронутыми, тогда как очистка удалит все следы программы из вашей системы.
# aptitude удалить/очистить имя_пакета
# ням стереть имя_пакета

---Notice the minus sign in front of the package that will be uninstalled, openSUSE ---

zypper remove -package_name 

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

4. Отображение информации о посылке

Следующая команда отобразит информацию о пакете birthday.

aptitude show birthday 
yum info birthday
zypper info birthday

Краткое содержание

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