Управление пакетами в 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
Поиск пакета #
Локальный поиск пакета #
Для поиска пакета по имени или его краткому описанию можно использовать
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 #
- Интерактинвный список пакетов
- Поиск по списку
- Разрешение конфликтов