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

Управление пакетами в GNU/Linux #

Васильев Андрей Михайлович, 2024

Версии презентации


Инструменты пакетных менеджеров #

Пакетные менеджеры обычно включают в себя инструменты:

  • Низкого уровня, в задачу которых входит установка и удаление конкретных пакетов на локальный компьютер
  • Высокого уровня, в задачу которых входит работа с репозиторием (поиск и скачивание пакетов), решение задачи разрешения зависимостей

Инструменты различных дистрибутивов

Дистрибутив Низкоуровневый инструмент Высокоуровневый инструмент
Debian-производные, Astra dpkg apt, apt-get, aptitude
RHEL, SUSE, РЭД ОС rpm yum, dnf, zypper
Alt Linux rpm apt-get, aptitude, epm

Локальный кеш пакетов #

В ALT Linux поиск пакетов в репозитории всегда происходит по локальному кешу пакетов

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

Для обновления кеша пакетов в ALT Linux необходимо выполнить команду apt-get update

diagram


Поиск пакета #

Локальный поиск пакета #

Для поиска пакета по имени или его краткому описанию можно использовать

apt-cache search TEXT

Вместо TEXT необходимо вводить искомое слово, обычно название пакета совпадает с названием приложения, которое необходимо установить

Поиск пакета на packages.altlinux.org #

ALT Linux предлагает графический инструментарий для поиска пакетов https://packages.altlinux.org

  • Поиск пакетов по категориям
  • Поиск пакетов по имени
  • Фильтрация поиска по выпускам дистрибутива

Поиск пакета по содержимому #

Выяснение пакета для установленного файла #

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

Для этих целей необходимо воспользоваться инструментарием низкого уровня: dpkg или rpm в зависимости от дистрибутива

Для ALT Linux: rpm -qf /PATH/TO/FILE, где вместо аргумента нужно указать путь к искомому файлу


Выяснение пакета для неустановленного файла #

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

  • При компиляции приложения из исходных кодов
  • При запуске бинарного приложения, распространяемого без упаковки в пакет

Т.е. мы ищем пакет, который ещё не установлен в ОС

В ALT Linux для решения этой задачи можно использовать apf или epm

# apt-get install apf
$ apf update # Обновляем локальный кеш apf
$ apf search FILE_TO_FIND

С использованием epm:

# apt-get install eepm rsync # rsync нужен для работы кеша
# epm update # Обновляем также локальный кеш eepm
# epm -sf FILE_TO_FIND

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


Установка пакета из репозитория #

Для установки пакета из репозитория необходимо выполнить команду apt-get install PACKAGE.... Вместо PACKAGE необходимо указать имена пакетов для установки

Внимание если давно не обновлялся локальный кеш пакетов, то его необходимо обновить перед установкой с помощью команды apt-get update

Для установки apt-get выполнит следующие операции:

  • Обратиться к локальному кешу пакетов удалённых репозиториев
  • Среди всех доступных версий пакета выбрать версию с наибольшей версии из репозитория с наибольшим приоритетом
  • Для данного пакета найти список всех его зависимостей, рекурсивно
  • Выделить все неустановленные пакеты в системе
  • Скачать RPM-пакеты для всех неустановленных пакетов
  • Дать команду низкоуровневым инструментам по установке скачанных пакетов

Установка пакета из RPM-файла #

Если вы хотите поставить совместимый с дистрибутивом RPM-пакет, который был скачан на компьютер, например с сайта производителя программного обеспечения

  • С помощью низкоуровнего инструмента: rmp -i PATH-TO-FILE.rpm
  • С помощью высокоуровнего инструмента: apt-get install PATH-TO-FILE.rmp

В последнем случае будет установлен как пакет, так и его зависимости

Внимание расширение файла не гарантирует совместимость с дистрибутивом


Удаление пакета #

Удаление обычно выполняется высокоуровневыми инструментами

В ALT Linux для удаления пакета надо выполнить apt-get remove PACKAGE..., где вместо PACKAGE... необходимо указать список пакетов, которые нужно удалить

Важно понимать, что необходимо указать точное название пакета

Для отображения списка пакетов можно использовать rpm -qa


Обновление пакетов #

Обновление пакета из репозитория #

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

Для обновления локальных пакетов необходимо выполнить apt-get update, чтобы обновить локальный кеш пакетов относительно изменений в удалённом репозитории

Затем необходимо выполнить команду apt-get dist-upgrade и проверить список обновляемых пакетов

Обновление с помощью RPM-пакета #

Обновление из RPM-пакета не отличается от установки нового пакета

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


Использование графических приложений #

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

  • Synaptic, требует графического пользовательского окружения
  • aptitude, псевдографический менедежр, работает в консоли
  • ALT Linux Control Center, acc, графический менеджер настроек дистрибутивов ALT Linux

Особенности aptitude #

  • Интерактинвный список пакетов
  • Поиск по списку
  • Разрешение конфликтов

© A. M. Васильев, 2025, CC BY-SA 4.0, andrey@crafted.su