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

Для работы с каждым из форматов пакетов предназначены специальные программы — менеджеры пакетов: в случае rpm-пакетов это rpm, а в случае deb-пакетов — dpkg. Как правило, основные административные операции можно выполнять с помощью этих программ, однако в каждом дистрибутиве обычно предлагаются собственные более высокоуровневые системы для управления пакетами и работы с репозиториями пакетов.

В рамках данного курса будет рассматриваться управление пакетами на основе rpm (как низкоуровневого средства работы с пакетам) и APT (как высокоуровневого интерфейса к нему), которое можно применить к ряду дистрибутивов Linux.

Задачи менеджера пакетов

Администратору системы приходится выполнять следующие операции при работе с пакетами:

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

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

Как уже было сказано выше, пакеты в системе выстраиваются в сеть зависимостей и блокировок. Например, веб-сервер apache может зависеть от множества пакетов, т.е. администратору придётся установить все из них перед установкой самого пакета apache.На рисунке Рисунок 3.20, «Пример зависимостей пакетов в системе» показан пример реальных зависимостей пакетов в одном из дистрибутивов GNU/Linux. Аналогичная ситуация возникает и при удалении пакета: удаление одной из зависимостей вообще говоря некорректно и может привести к отказу работы программ из основного пакета.

Рисунок 3.20. Пример зависимостей пакетов в системе

Зависимость между пакетами системы может основываться на:

  • функциональной зависимости, например, программы от библиотеки (например, библиотеки «libreadline», предоставляющей функцию гибкого ввода текста в командной строке);
  • зависимости от набора данных или конфигураций (так, пакет «terminfo» предоставляет набор конфигураций терминалов);
  • зависимости при установке — при отсутствии данного пакета в системе не удастся развернуть и проинициализировать зависящий от него пакет;
  • виртуальные зависимости — используются для объединения пакетов в группы, удобные для установки и обновления (например, пакет «glibc» зависит от множества пакетов вида «glibc-*», включающих отдельные компоненты базовой системной библиотеки).

Часто в рамках одной системы доступно для установки несколько версий программы (а, следовательно, и пакета). Как правило, разные версии пакета не могут одновременно присутствовать в системе. Такая ситуация называется конфликтом между пакетами в системе. Другой причиной конфликта может быть аналогичная функциональность пакетов, например в системе может быть установлен только один демон планирования заданий, хотя существует несколько его реализаций, представленных различными пакетами.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: