Цепочка поставок программного обеспечения

Цепочка поставок программного обеспечения

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

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

Аудитория
Учащиеся выходят за рамки мышления о магазине приложений
Время чтения
23 мин
Крупнейшие менеджеры
5
Слои упаковки
2
Доверие к репозиторию
signed

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

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

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

Что такое менеджер пакетов диаграмма
Репозиторийподписанный источник
Метаданныеиндекс пакетов
Зависимостирешатель
Файлыустановленные пути
/usr/binкоманды

Репозитории и зависимости

Репозиторий — это подписанная коллекция метаданных пакета и файлов пакета. Менеджер пакетов загружает метаданные, разрешает зависимости, проверяет доверие, а затем устанавливает пакеты в правильном порядке.

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

Обновления, обновления и стабильность

Обновление метаданных — это не то же самое, что обновление пакетов. В системах apt обновление apt обновляет индекс пакета; apt update меняет установленное программное обеспечение. В скользящих системах частичные обновления могут быть опасными, поскольку ожидается, что пакеты будут перемещаться вместе.

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

Подписи пакетов и доверие

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

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

Чем отличаются форматы пакетов

Чем отличаются форматы пакетов
EcosystemНизкоуровневый форматМенеджер высокого уровняПримеры
Семейство Debian.debaptDebian, Ubuntu, Mint, Pop!_OS
Семейство RPM.rpmДНФ или ЗипперFedora, Rocky Linux, openSUSE.
Семья Арка.pkg.tar.zstpacmanАрка, Манджаро
Alpine.apkapkАльпийский Linux

apt/dpkg, dnf/rpm, pacman, zypper и apk

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

apt/dpkg, dnf/rpm, pacman, zypper и apk
ManagerСемейство дистрибутивовОбщие команды
apt/dpkgДебиан и Убунтуapt update, apt install, dpkg -L, dpkg -S
dnf / rpmFedora и RHEL-подобныеdnf upgrade, dnf install, rpm -ql, rpm -qf
pacmanArchpacman -Syu, pacman -S, pacman -Qs
zypper / rpmopenSUSEzypper refresh, zypper update, zypper install
apkAlpineapk update, apk add, apk del, apk search

Поиск, безопасное удаление и очистка кешей

  • Выполните поиск перед установкой, если вы не знаете точное имя пакета.
  • Просмотрите удаления перед подтверждением; Удаление зависимостей может быть неожиданным.
  • Используйте очистку в стиле автоматического удаления только после прочтения того, что будет удалено.
  • Не смешивайте репозитории из разных выпусков дистрибутива, если это явно не поддерживается документацией.
Поиск и установка Debian/Ubuntu
apt search nginx
sudo apt install nginx
Информация о пакете Fedora
dnf info podman
sudo dnf install podman
Полное обновление Арки
sudo pacman -Syu