87.2. Источники программ (репозитории)
Отличие репозиториев, с которыми работает APT, от простого набора пакетов — наличие метаинформации. В ней содержится индекс находящихся в репозитории пакетов и сведения о них. Поэтому, чтобы получить всю информацию о репозитории, APT достаточно получить его индексы.
APT может пользоваться любым количеством репозиториев одновременно, формируя единую информационную базу обо всех содержащихся в них пакетах. При установке пакетов APT обращает внимание только на название пакета, его версию и зависимости. Для APT не имеет значения расположение пакета в том или ином репозитории.
Для одновременного подключения нескольких репозиториев необходимо отслеживать их совместимость друг с другом, т.е. их пакетная база должна отражать один определённый этап разработки. Совместное использование репозиториев, относящихся к разным дистрибутивам, или смешивание стабильного репозитория с нестабильной веткой разработки (Sisyphus) может привести к различным неожиданностям и трудностям при обновлении пакетов.
APT осуществляет взаимодействие с репозиториями при помощи различных протоколов доступа. Наиболее популярные —
HTTP и
FTP.
Для того чтобы
APT мог использовать тот или иной репозиторий, информацию о нём необходимо поместить в файл
/etc/apt/sources.list
, либо в любой файл
.list
(например,
mysources.list
) в каталоге
/etc/apt/sources.list.d/
. Описания репозиториев заносятся в эти файлы в следующем виде:
rpm [подпись] метод:путь база название
rpm-src [подпись] метод:путь база название
Здесь:
rpm или rpm-src — тип репозитория (скомпилированные программы или исходные тексты);
[подпись] — необязательная строка-указатель на электронную подпись разработчиков. Наличие этого поля подразумевает, что каждый пакет из данного репозитория должен быть подписан соответствующей электронной подписью. Подписи описываются в файле /etc/apt/vendor.list
;
метод — способ доступа к репозиторию: ftp, http, file, rsh, ssh, cdrom, copy;
путь — путь к репозиторию в терминах выбранного метода;
база — относительный путь к базе данных репозитория;
название — название репозитория.
Непосредственно после установки дистрибутива Альт Рабочая станция K в файлах /etc/apt/sources.list.d/*.list
обычно указывается интернет-репозиторий, совместимый с установленным дистрибутивом.
После редактирования списка репозиториев в sources.list
, необходимо обновить локальную базу данных APT о доступных пакетах. Это делается командой apt-get update
.
Если в sources.list
присутствует репозиторий, содержимое которого может изменяться (например, постоянно разрабатываемый репозиторий или репозиторий обновлений по безопасности), то прежде чем работать с APT, необходимо синхронизировать локальную базу данных с удалённым сервером командой apt-get update
. Локальная база данных создаётся заново при каждом изменении в репозитории: добавлении, удалении или переименовании пакета.
При установке определённого пакета APT производит поиск самой новой версии этого пакета во всех известных ему репозиториях вне зависимости от способа доступа к ним. Так, если в репозитории, доступном в сети Интернет, обнаружена более новая в сравнении с компакт-диском версия программы, то APT начнёт загружать соответствующий пакет из сети Интернет. Поэтому, если подключение к сети Интернет отсутствует или ограничено низкой пропускной способностью канала или высокой стоимостью, то следует закомментировать строчки (добавить в начало строки символ #) в /etc/apt/sources.list
, относящиеся к ресурсам в сети Интернет.
87.2.1. Редактирование репозиториев
87.2.1.1. Утилита apt-repo для работы с репозиториями
Для редактирования репозиториев можно воспользоваться утилитой
apt-repo
:
просмотреть список активных репозиториев:
apt-repo
добавить репозиторий в список активных репозиториев:
apt-repo add репозиторий
удалить или выключить репозиторий:
apt-repo rm репозиторий
обновить информацию о репозиториях:
apt-repo update
справка о команде
apt-repo
:
man apt-repo
или
apt-repo --help
Для выполнения большинства команд необходимы права администратора.
Типичный пример использования: удалить все источники и добавить стандартный репозиторий P10 (архитектура выбирается автоматически):
# apt-repo rm all
# apt-repo add p10
Или то же самое одной командой:
# apt-repo set p10
87.2.1.2. Добавление репозитория на сменном носителе
Для добавления в sources.list
репозитория на сменном диске в APT предусмотрена специальная утилита — apt-cdrom
.
Чтобы добавить запись о репозитории на сменном диске необходимо:
Создать каталог для монтирования. Точка монтирования указывается в параметре
Acquire::CDROM::mount
в файле конфигурации
APT (
/etc/apt/apt.conf
), по умолчанию это
/media/ALTLinux
:
# mkdir /media/ALTLinux
Примонтировать носитель в указанную точку:
# mount /dev/sdXN /media/ALTLinux
где
/dev/sdXN
— соответствующее блочное устройство (например,
/dev/dvd
— для CD/DVD-диска).
Добавить носитель, выполнив команду:
# apt-cdrom -m add
После этого в
sources.list
появится запись о подключённом носителе:
rpm cdrom:[ALT Workstation K 10.3 x86_64 build 2024-02-20]/ ALTLinux main
Команду mount /dev/носитель /media/ALTLinux
необходимо выполнять перед каждой командой apt-get install имя_пакета
.
87.2.1.3. Добавление репозиториев вручную
Для изменения списка репозиториев можно отредактировать в любом текстовом редакторе файлы из каталога /etc/apt/sources.list.d/
.
Для изменения этих файлов необходимы права администратора.
В файле
alt.list
может содержаться такая информация:
# ftp.altlinux.org (ALT Linux, Moscow)
# ALT Platform 10
#rpm [p10] ftp://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic
#rpm [p10] ftp://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic
#rpm [p10] ftp://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/x86_64-i586 classic
rpm [p10] http://ftp.altlinux.org/pub/distributions/ALTLinux p10/branch/noarch classic
По сути, каждая строчка соответствует некому репозиторию. Не активные репозитории — строки, начинающиеся со знака #. Для добавления нового репозитория, достаточно дописать его в этот или другой файл.
После обновления списка репозиториев следует обновить информацию о них (выполнить команду apt-get update
или apt-repo update
).