Перейти к содержанию

04. Работа с пакетными менеджерами

Введение

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

Пакетный менеджер — это программный инструмент, который:

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

Пакетные менеджеры позволяют:

  • быстро разворачивать рабочие среды на сервере;
  • централизованно управлять программами на множестве машин;
  • экономить время за счёт автоматизации обновлений и установки ПО;
  • поддерживать безопасность системы, оперативно получая исправления уязвимостей.

Что такое пакеты

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

  • исполняемые файлы программы;
  • библиотеки и модули, от которых она зависит;
  • конфигурационные файлы по умолчанию;
  • документацию и лицензии;
  • скрипты для установки, настройки и удаления.

Также пакет содержит метаданные:

  • имя и версию;
  • описание и назначение программы;
  • список зависимостей и конфликтующих пакетов;
  • контрольные суммы для проверки целостности.

Пакеты бывают двух типов:

  • Двоичные (binary) — готовые к установке программы, которые не нужно компилировать.
  • Исходные (source) — содержат исходный код и требуют сборки перед установкой.

Наиболее распространённые форматы:

  • .deb — для Debian, Ubuntu и их производных.
  • .rpm — для Red Hat, Fedora, CentOS, openSUSE.
  • .pkg.tar.zst — для Arch Linux.

Установка из пакета проще и надёжнее, чем установка вручную: менеджер сам разместит файлы в нужных каталогах и проследит за зависимостями.


Репозитории и зеркала

Репозиторий — это удалённое хранилище пакетов, из которого пакетный менеджер скачивает и устанавливает программы. Оно содержит:

  • бинарные пакеты и/или исходные коды;
  • базы метаданных (списки пакетов, их версии, зависимости, контрольные суммы);
  • структуру каталогов, разделённую по архитектурам (x86_64, arm64 и др.) и веткам (stable, testing, security и т.п.).

Виды репозиториев:

  • Официальные — поддерживаются разработчиками дистрибутива, проходят проверку и считаются безопасными. Обычно делятся на ветки: stable (стабильные), updates (обновления), security (исправления уязвимостей).
  • Неофициальные (сторонние) — создаются сообществом или организациями, могут содержать нестабильные, редкие или экспериментальные пакеты. Используются с осторожностью.
  • Локальные (внутренние) — собственные хранилища администратора в локальной сети для централизованной установки ПО на рабочие станции.

Зеркала (mirrors) — это копии официальных репозиториев, расположенные на разных серверах по всему миру. Они нужны для:

  • ускорения загрузки пакетов за счёт выбора ближайшего сервера;
  • снижения нагрузки на основной сервер дистрибутива;
  • обеспечения отказоустойчивости (если основной сервер недоступен).

Расположение настроек репозиториев:

  • Debian/Ubuntu: список репозиториев хранится в /etc/apt/sources.list и дополнительных файлах /etc/apt/sources.list.d/*.list
  • Fedora/Red Hat: файлы .repo в каталоге /etc/yum.repos.d/
  • Arch Linux: список зеркал в /etc/pacman.d/mirrorlist

Пример записи для APT:

deb http://archive.ubuntu.com/ubuntu jammy main universe restricted multiverse

где:

  • deb — тип пакетов (двоичные),
  • URL — адрес репозитория,
  • jammy — название версии (кодовое имя Ubuntu),
  • main universe restricted multiverse — секции с разным типом поддержки.

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


Основные пакетные менеджеры

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

Пакетный менеджер Дистрибутивы Формат пакетов Назначение и особенности
APT (Advanced Package Tool) Debian, Ubuntu, Linux Mint .deb Высокоуровневый менеджер, работает поверх dpkg. Автоматически разрешает зависимости, удобен для ежедневного администрирования.
DPKG (Debian Package) Debian, Ubuntu .deb Низкоуровневый инструмент. Устанавливает локальные .deb пакеты, не управляет зависимостями — их нужно устанавливать вручную.
YUM (Yellowdog Updater, Modified) / DNF (Dandified YUM) Red Hat, Fedora, CentOS .rpm DNF — современная замена YUM, быстрее и надёжнее. Работает с репозиториями, разрешает зависимости, умеет откатывать транзакции.
Zypper openSUSE .rpm Умеет управлять репозиториями, устанавливать, удалять и обновлять пакеты. Поддерживает патчи безопасности и обновления ядра.
Pacman Arch Linux .pkg.tar.zst Очень быстрый и минималистичный менеджер. Работает напрямую с бинарными пакетами, объединяет функции низко- и высокоуровневого менеджера.

Ключевые отличия:

  • В Debian-системах (apt, dpkg) пакеты формата .deb, а в Red Hat-подобных (dnf, yum, zypper) — .rpm.
  • apt и dnf управляют зависимостями автоматически, dpkg — нет.
  • pacman и zypper совмещают простоту и высокую скорость, но требуют знания структуры системы.

Администратору важно уметь работать хотя бы с двумя семействами менеджеров: apt (Debian) и dnf (Red Hat), так как они встречаются чаще всего.


Работа с APT (Debian/Ubuntu)

APT — основной инструмент управления пакетами в Debian, Ubuntu и их производных. Он работает с бинарными пакетами .deb и автоматически устанавливает необходимые зависимости.

Обновление системы:

  • sudo apt update — обновляет список доступных пакетов из всех подключённых репозиториев (обновляет только список, не сами пакеты).
  • sudo apt upgrade — обновляет все уже установленные пакеты до последних доступных версий.
  • sudo apt full-upgrade — выполняет полное обновление системы, включая удаление устаревших пакетов и установку новых зависимостей.

Установка пакетов:

  • sudo apt install <имя> — установка нового пакета.
  • sudo apt install ./имя.deb — установка локального .deb файла (через APT, с обработкой зависимостей).
  • apt search <имя> — поиск пакетов в репозиториях.
  • apt show <имя> — подробная информация о пакете (версия, описание, зависимости).

Удаление пакетов:

  • sudo apt remove <имя> — удаляет пакет, сохраняя конфигурационные файлы.
  • sudo apt purge <имя> — удаляет пакет вместе с конфигурационными файлами.
  • sudo apt autoremove — удаляет неиспользуемые зависимости, которые остались после удаления программ.

Управление репозиториями:

  • Список репозиториев: /etc/apt/sources.list и /etc/apt/sources.list.d/*.list
  • Добавить репозиторий: sudo add-apt-repository ppa:<имя>
  • Обновить список после изменения: sudo apt update

В отличие от dpkg, apt автоматически устанавливает зависимости, проверяет целостн


Работа с DNF (Fedora/Red Hat)

DNF — основной пакетный менеджер в Fedora, Red Hat и CentOS. Он заменил yum и предлагает улучшенную работу с зависимостями, транзакциями и кешированием.

Обновление системы:

  • sudo dnf check-update — проверить наличие обновлений.
  • sudo dnf upgrade — установить все доступные обновления.
  • sudo dnf distro-sync — синхронизировать установленные версии пакетов с версиями в репозиториях (используется при смене версии дистрибутива).

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

  • sudo dnf install <имя> — установка пакета.
  • sudo dnf reinstall <имя> — переустановка пакета.
  • sudo dnf remove <имя> — удаление пакета.
  • sudo dnf autoremove — удаление неиспользуемых зависимостей.

Поиск и информация:

  • dnf search <имя> — поиск пакета в репозиториях.
  • dnf info <имя> — подробная информация о пакете (описание, зависимости, версия).
  • dnf list installed — список всех установленных пакетов.
  • dnf list available — список доступных для установки пакетов.

Управление репозиториями:

  • Конфигурационные файлы .repo находятся в /etc/yum.repos.d/
  • dnf repolist — показать активные репозитории.
  • dnf config-manager --add-repo <URL> — добавить новый репозиторий.
  • dnf config-manager --disable <имя> — отключить репозиторий.

DNF поддерживает транзакции — можно отменить последнюю установку или обновление командой sudo dnf history undo .


Работа с Pacman (Arch Linux)

Pacman — стандартный менеджер пакетов в Arch Linux и его производных (Manjaro, EndeavourOS). Он объединяет функции низко- и высокоуровневого менеджера: устанавливает пакеты, управляет зависимостями и синхронизирует систему.

Обновление системы:

  • sudo pacman -Sy — обновить список доступных пакетов.
  • sudo pacman -Syu — обновить все установленные пакеты до последних версий.
  • sudo pacman -Syyu — принудительно обновить список репозиториев и пакеты.

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

  • sudo pacman -S <имя> — установить пакет из репозиториев.
  • sudo pacman -U <файл.pkg.tar.zst> — установить пакет из локального файла.
  • sudo pacman -R <имя> — удалить пакет.
  • sudo pacman -Rs <имя> — удалить пакет и неиспользуемые зависимости.
  • sudo pacman -Rns <имя> — удалить пакет вместе с конфигами и зависимостями.

Поиск и информация:

  • pacman -Ss <имя> — поиск пакета в репозиториях.
  • pacman -Si <имя> — подробная информация о пакете в репозитории.
  • pacman -Qs <имя> — поиск установленных пакетов.
  • pacman -Qi <имя> — информация об установленном пакете.
  • pacman -Qe — список пакетов, установленных пользователем.
  • pacman -Qdt — список «осиротевших» пакетов (неиспользуемых зависимостей).

Очистка системы:

  • sudo pacman -Sc — очистка кеша от старых версий пакетов.
  • sudo pacman -Scc — полная очистка кеша.
  • sudo pacman -R $(pacman -Qdtq) — удалить осиротевшие пакеты.

Управление зеркалами:

  • Список зеркал находится в /etc/pacman.d/mirrorlist
  • Можно редактировать его вручную, оставляя ближайшие и быстрые серверы.

В Arch Linux рекомендуется регулярно выполнять sudo pacman -Syu, чтобы поддерживать систему в актуальном состоянии.


Заключение

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

Умение уверенно работать с пакетными менеджерами позволяет администратору:

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

Для эффективной работы в Linux-окружении администратору необходимо знать основные команды и особенности хотя бы двух семейств пакетных менеджеров — APT/Dpkg (Debian/Ubuntu) и DNF/YUM (Fedora/Red Hat), а также разбираться в Pacman (Arch). Эти навыки являются фундаментом для дальнейшего освоения администрирования Linux-систем.