Product SiteDocumentation Site

Глава 49. Источники программ (репозитории)

49.1. Редактирование репозиториев
49.1.1. Утилита apt-repo для работы с репозиториями
49.1.2. Добавление репозитория на CD/DVD-носителе
49.1.3. Добавление репозиториев вручную
Отличие репозиториев, с которыми работает 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;
  • путь — путь к репозиторию в терминах выбранного метода;
  • база — относительный путь к базе данных репозитория;
  • название — название репозитория.
После редактирования списка репозиториев в sources.list, необходимо обновить локальную базу данных APT о доступных пакетах. Это делается командой apt-get update.
Если в sources.list присутствует репозиторий, содержимое которого может изменяться (например, постоянно разрабатываемый репозиторий или репозиторий обновлений по безопасности), то прежде чем работать с APT, необходимо синхронизировать локальную базу данных с удалённым сервером командой apt-get update. Локальная база данных создаётся заново при каждом изменении в репозитории: добавлении, удалении или переименовании пакета.
При установке определённого пакета APT производит поиск самой новой версии этого пакета во всех известных ему репозиториях вне зависимости от способа доступа к ним. Так, если в репозитории, доступном в сети Интернет, обнаружена более новая в сравнении с компакт-диском версия программы, то APT начнёт загружать соответствующий пакет из сети Интернет. Поэтому, если подключение к сети Интернет отсутствует или ограничено низкой пропускной способностью канала или высокой стоимостью, то следует закомментировать строчки (добавить в начало строки символ #) в /etc/apt/sources.list, относящиеся к ресурсам в сети Интернет.

49.1. Редактирование репозиториев

Примечание

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

49.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
    

Примечание

Для выполнения большинства команд необходимы права администратора.
Типичный пример использования: удалить все источники и добавить стандартный репозиторий P9 (архитектура выбирается автоматически):
# apt-repo rm all
# apt-repo add p9

49.1.2. Добавление репозитория на CD/DVD-носителе

Для добавления в sources.list репозитория на компакт-диске в APT предусмотрена специальная утилита — apt-cdrom. Чтобы добавить запись о репозитории на компакт-диске, достаточно вставить диск в привод и выполнить команду apt-cdrom add. После этого в sources.list появится запись о подключённом диске примерно такого вида:
rpm cdrom:[ALT for Elbrus 2021-04-19]/ ALTLinux main

Важно

Если при выполнении команды apt-cdrom add, вы получаете ошибку:
Не найдена точка монтирования /media/ALTLinux/ диска
Необходимо:
  • в файл /etc/fstab добавить строку:
    /dev/sr0 /media/ALTLinux udf,iso9660     ro,noauto,user,utf8,nofail,comment=x-gvfs-show  0 0
    
  • создать каталог для монтирования:
    # mkdir /media/ALTLinux
    
  • затем использовать команду добавления носителя:
    # apt-cdrom add
    

49.1.3. Добавление репозиториев вручную

Для изменения списка репозиториев можно отредактировать в любом текстовом редакторе файлы из каталога /etc/apt/sources.list.d/.

Примечание

Для изменения этих файлов необходимы права администратора.
В файле alt.list может содержаться такая информация:
# ftp.altlinux.org (ALT Linux, Moscow)

# ALT Linux Platform 9
#rpm [p9] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch x86_64 classic
#rpm [p9] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch x86_64-i586 classic
#rpm [p9] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch noarch classic

rpm [p9] http://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch x86_64 classic
rpm [p9] http://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch x86_64-i586 classic
rpm [p9] http://ftp.altlinux.org/pub/distributions/ALTLinux/p9/branch noarch classic
По сути, каждая строчка соответствует некому репозиторию. Не активные репозитории — строки, начинающиеся со знака #. Для добавления нового репозитория, достаточно дописать его в этот или другой файл.
После обновления списка репозиториев следует обновить информацию о них (выполнить команду apt-get update или apt-repo update).