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

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

2020

Понятие дистрибутива ОС

В экосистеме Linux существует множество «дистрибутивов», которые позволяют пользователям запускать свои приложения и решать свои инфраструктурные задачи

Если абстрагироваться от деталей, то все дистрибутивы

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

Примерами дистрибутивов могут служить:

Дистрибутивы исторически появились для решения задачи поставки данных до конечных пользователей

Дистрибутивы позволяют получить быстро доступ к ПО унифицированным способом

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

Дистрибутив Дата выпуска Окончание поддержки
Debian 9 (Stretch) 17 июня 2017 18 июля 2020
Debian 10 (Buster) 6 июля 2019 2022

Пакетные менеджеры

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

Аналогом пакетного менеджера в Linux можно назвать:

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

Пакетный менеджер Дистрибутивы Linux
Debian (.deb) Debian, Ubuntu, Linux Mint, Raspbian, Astra Linux
Red Hat (.rpm) Fedora, CentOS, Red Hat Enterprise Linux, openSUSE

Пакетные файлы, пакеты

Базовой единицей распространения ПО в дистрибутиве является пакетный файл

Пакетный файл обычно создаётся с помощью автоматизированной системы сборки пакетов, настройкой которой для каждого отдельного пакета занимается мейнтейнер (от английского maintain — поддерживать)

Репозитории

Пакеты могут быть созданы также разработчиками ПО

Репозиторий представляет собой хранилище пакетов для дистрибутива

Зависимости пакетов

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

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

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

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

Дистрибутив Низкоуровневый инструмент Высокоуровневый инструмент
Debian производные, Astra dpkg apt, apt-get, aptitude
Fedora, RHEL, CentOS rpm yum, dnf, zypper
Alt Linux rmp apt-get, aptitude

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

Обновление кеша

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

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

Поиск пакета

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

apt-cache search TEXT
apt search TEXT

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

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

Дистрибутив Debian предлагает графический инструментарий для поиска пакетов https:/packages.debian.org

Поиск с помощью передачи аргумента

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

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

Из репозитория

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

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

Из файла

Если вы хотите поставить .deb-пакет не из репозитория, то необходимо

  1. Скачать данный пакет на компьютер
  2. Установить с помощью низкоуровнего инструмента dpkg: dpkg -i PATH, где вместо PATH указать путь к .deb-пакету

Если пакету не хватает зависимостей, то его установка завершится с ошибкой

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

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

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

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

Отображение списка установленных пакетов

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

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

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

Для обновления локальных пакетов необходимо выполнить apt-get upgrade или apt upgrade

Внимание. Не забывайте обновлять локальный кеш пакетов перед выполнением данных операций с помощью apt update

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

Обновление из файла-пакета не отличается от установки нового пакета. Достаточно вызвать dpkg -i PACKAGE, где вместо PACKAGE надо указать путь к deb-файлу

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

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

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

Процесс выпуска версий GNU/Debian

Выпуски Debian

Разделы репозиториев Debian

Debian в целом разделяет пакеты на «свободные» и «несвободные». Для определения категории используются The Debian Free Software Guidelines (DFSG)

В соответствии с этим определением пакеты делятся на 3 категории:

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

Конфигурация репозиториев в Debian

Для настройки списка доступных репозиториев используются

Каждая строка в этих файлах описывает подключённый репозиторий

deb uri distribution [component1] [component2] [...]

Полезные репоизтории экосистемы Debian

Между выпусками Debian проходит от полутора до двух лет, за которые успевает выйти много версий ПО, которые могут быть необходимы пользователю

Мультимедийные компоненты

Проект deb-multimedia нацелен на предоставление самых последних версий мультимедиа-пакетов в Debian. Пользователи получают самые последние версии от производителя, включая самые последние функции и ошибки

Скачайте и установите пакет с ключом:

wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb
sudo dpkg -i deb-multimedia-keyring_2016.8.1_all.deb

Добавьте файл deb-multimedia.list в /etc/apt/sources.list.d:

deb https://mirror.yandex.ru/debian-multimedia/ buster main non-free

Подключение раздела debian-backports

Похожую задачу решает Debian Backports

В рамках этого проекта создан репозиторий, в который помещаются пакеты из Debian Testing, которые были скомпилированы для достижения бинарной совместимости с текущим стабильным выпуском

Подключение репозитория

Debian backports стали распространяться вместе с официальными выпусками debian, поэтому достаточно добавить -backports-дистрибутив в список репозиториев:

deb http://deb.debian.org/debian buster-backports main

Установка пакетов из debian-backports

В отличие от debian-multimedia пакеты автоматически не обновятся до версий debian-backports, их необходимо явно установить:

apt-get -t buster-backports install PACKAGE

Подключение репозиториев от других производителей

Некоторые крупные производители ПО предлагают собственные репозитории

Некоторые из них предлагают новые имена для пакетов, некоторые предлагают конкретные версии своих пакетов

Переход на новую версию дистрибутива

Пользователи зачастую хотят перейти на новую версию дистрибутива:

Проблемы обновления:

Выполнение перехода на новую версию

  1. Отредактируйте конфигурацию пакетного менеджера, чтобы она ссылалась на новую версию дистрибутива
  2. Обновите локальный кеш пакетов, apt-get update
  3. Выполните обновление дистрибутива, apt-get dist-upgrade

Особенности распространения ПО

Установка ПО альтернативными способами