rpm и dpkg
100%

Пакеты · Урок 5

rpm и dpkg

Узнайте, как dpkg и rpm проверяют и изменяют собственные базы пакетов и локальные архивы.

dpkg — низкоуровневый инструмент пакетов в системах семейства Debian, а rpm выполняет похожую роль в системах семейства RPM. Они распаковывают собственные архивы, выполняют действия жизненного цикла пакетов и обновляют базы установленных пакетов. Работающие с репозиториями инструменты, такие как APT и DNF, опираются на эти низкоуровневые механизмы.

Проверка архива до установки

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

Debian: $ dpkg-deb --info ./some-package.deb
Debian: $ dpkg-deb --contents ./some-package.deb
RPM:    $ rpm -qip ./some-package.rpm
RPM:    $ rpm -qlp ./some-package.rpm

Буква p в показанных формах запросов RPM означает «запросить файл пакета», а не установленную базу. Вывод запроса помогает проверить пакет, но не доказывает безопасность его скриптов или программ.

Какой низкоуровневый инструмент управляет пакетами Debian .deb и их установленной базой?

Установка локального архива

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

Debian: $ sudo dpkg -i ./some-package.deb
RPM:    $ sudo rpm -U ./some-package.rpm

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

Debian: $ sudo apt install ./some-package.deb
RPM:    $ sudo dnf install ./some-package.rpm

Проверьте транзакцию перед подтверждением. Начальные ./ отличают локальный путь к архиву Debian от имени пакета репозитория в APT.

Какая из показанных команд может установить локальный .deb, разрешив доступные зависимости из репозитория?

Удаление установленного пакета

При удалении указывается имя установленного пакета, а не имя использованного ранее файла архива:

Debian: $ sudo dpkg --remove package-name
RPM:    $ sudo rpm --erase package-name

В Debian --remove обычно сохраняет конфигурационные файлы, классифицированные как conffiles; --purge также запрашивает их удаление с учётом скриптов пакета и неуправляемых данных. Ни одна команда не гарантирует удаление данных, созданных пользователем. Высокоуровневые apt remove или dnf remove обычно лучше, поскольку могут оценить связанные пакеты и представить полную транзакцию.

Какой операнд ожидает dpkg --remove для установленного пакета?

Запрос установленного состояния

Перечислите установленные или известные записи пакетов:

Debian: $ dpkg-query -l
RPM:    $ rpm -qa

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

Какая команда запрашивает все пакеты, записанные как установленные в базе RPM?

Урок завершён

Вы завершили rpm и dpkg

Теперь вы умеете отличать низкоуровневые операции с пакетами от транзакций репозитория.

  • До установки проверяйте метаданные и содержимое локального архива.

  • Используйте dpkg для низкоуровневых операций с .deb, а rpm — с .rpm.

  • Предпочитайте APT или DNF, когда необходимо разрешить зависимости.

  • Удаляйте пакет по установленному имени и отдельно проверяйте управляемое состояние.

Сохраните прогресс

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

Создать бесплатный аккаунт
Следующий Урок
Назад к Пакеты