- Как добавить репозиторий в Debian
- Как добавить репозитории в Debian
- 1. Файл /etc/apt/sources.list
- 2. Папка /etc/apt/sources.list.d/
- 3. Команда apt-add-repository
- Выводы
- ru CreateLocalRepo
- Создание локального репозитория
- С помощью утилиты apt-mirror
- Подготовка и установка apt-mirror
- Настройка apt-mirror
- Запуск и автоматизация apt-mirror
- Настройка доступа к зеркалу
- C помощью утилиты debmirror
- Опции
- C помощью утилиты reprepro
- Описание параметров
- Инициализация репозитория
- Добавление пакетов расположенных на CD/DVD Debian
- Удаление deb-пакета из репозитория
- Использование
- Подпись локального репозитория своим ключом
- Генерирование ключа
- Экспорт ключа
- Добавление ключа в apt
- Подписывание локального репозитория созданным ключом
Как добавить репозиторий в Debian
Репозитории — это сетевые хранилища программного обеспечения. Они используются в дистрибутивах Linux, и в том числе в Debian для быстрой установки программного обеспечения с помощью пакетного менеджера. Более подробно о том какие репозитории бывают и зачем они нужны написано в статье Репозитории Debian.
В этой же статье мы поговорим о том как добавить репозитории в Debian различными способами. Самый простой и часто используемый вариант — настройка репозиториев вручную, с него мы и начнём.
Как добавить репозитории в Debian
Новички часто сталкиваются с проблемой, что после установки новой системы пакетный менеджер не может найти ни одного пакета. Это связано с тем, что по умолчанию основные репозитории Debian в систему не добавлены, там есть только репозитории из DVD дисков с помощью которых вы устанавливали систему. Эта проблема очень просто решается. Системные репозитории находятся в файле /etc/apt/sources.list. Давайте сначала посмотрим на содержимое этого файла по умолчанию:
sudo vi /etc/apt/sources.list
Синтаксис строки репозитория такой:
тип адрес дистрибутив ветка_1 ветка_2
Типов репозиториев может быть два. Это deb и deb-src. Первый — для бинарных файлов, второй — для файлов исходных кодов. Дистрибутив указывает кодовое имя дистрибутива, например, для Debian 10 — это buster, для девятой версии stretch. Для стабильных обновлений есть еще один репозиторий, где вместе с кодовым именем дистрибутива указывается слово updates, например: buster-updates.
Веток есть всего три, вот они:
- main — полностью свободные пакеты, это основа дистрибутива Debian;
- contrib — свободные пакеты, которые могут зависеть от несвободных;
- non-free — все остальные несвободные пакеты.
Основы разобрали, теперь давайте посмотрим как добавить репозитории.
1. Файл /etc/apt/sources.list
Именно в этот файл репозиториев Debian надо добавлять системные репозитории. Чтобы получить доступ ко всем системным пакетам надо добавить репозиторий stable, со стабильной версией Debian, и репозиторий стабильных обновлений. Вот так будут выглядеть их строчки:
deb http://deb.debian.org/debian/ buster main contrib non-free
deb http://deb.debian.org/debian/ buster-updates main contrib non-free
Просто добавьте их в конец файла /etc/apt/sources.list. Вы уже знаете какая часть за что отвечает и сможете разобраться. Если вы захотите добавить репозиторий Backports или Testing, то вам тоже следует использовать этот файл.
2. Папка /etc/apt/sources.list.d/
Сторонние репозитории тоже можно добавить в основной системный файл, но этого делать не следует, чтобы не засорять его лишними строками. Для сторонних репозиториев была придумана директория /etc/apt/sources.list.d/. В ней надо создать файл с именем репозитория и расширением .list, а затем добавить в неё репозиторий, как это делалось с основным конфигурационным файлом. Например, для браузера Chrome:
sudo vi /etc/apt/sources.list.d/google-chrome.list
deb http://dl.google.com/linux/chrome/deb/ stable main
Касательно сторонних репозиториев, есть ещё один момент. По умолчанию система не может им доверять, и для того чтобы это исправить нужно импортировать ключ репозитория. Обычно ключи можно найти на сайте, где вы нашли сам репозиторий, для того же Google Chrome ключ можно импортировать командой:
wget -q -O — https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add —
После добавления репозитория, прежде чем вы сможете установить пакет, необходимо обновить списки пакетов. Для этого выполните:
sudo apt update
3. Команда apt-add-repository
Эта команда делает то же самое, что мы делали вручную на первом шаге. Она добавляет репозиторий в /etc/apt/sources.list. Отлично подходит для добавления системных репозиториев. Для сторонних репозиториев её можно использовать не всегда, поскольку она добавляет кодовое имя дистрибутива в строку репозитория, а это может её сломать, если владельцами репозитория такое явно не было задумано. Например, с помощью этой команды вы можете добавить testing репозиторий:
sudo apt-add-repository ‘deb http://ftp.ru.debian.org/debian/ testing main non-free contrib’
А потом удалить, если он больше не нужен:
sudo apt-add-repository —remove ‘deb http://ftp.ru.debian.org/debian/ testing main non-free contrib’
Выводы
В этой небольшой статье мы рассмотрели добавление репозиториев Debian на примере операционной системы Debian 10. Как видите, для этого есть несколько способов и какой из них вы будете использовать зависит от вас. А как добавляете репозитории вы? Напишите в комментариях!
Источник
- ru
- CreateLocalRepo
Создание локального репозитория
С помощью утилиты apt-mirror
Подготовка и установка apt-mirror
Это основной способ зеркалирования, помимо официального ftpsync, т.к. он гораздо надёжней debmirror.
Создаём каталог /mnt/repo/debian и дополнительные mirror,var,skel. В нём будет создаваться локальный репозиторий пакетов. Желательно чтобы это был примонтированный логический раздел жёсткого диска, чтобы в случае переустановки дистрибутива с нуля, при форматировании корневого раздела (/), не лишиться репозитория совсем.
Настройка apt-mirror
Заранее предположим что нам нужны:
- Зеркало с готовыми к установке (бинарными) пакетами для amd64 jessie (stable)+ исходные тексты
- Зеркало с готовыми к установке (бинарными) обновлениями безопасности amd64 jessie (stable)+ исходные тексты
- Зеркало с готовыми к установке (бинарными) прочими обновлениями amd64 jessie (stable)+ исходные тексты
- Зеркало Backports, с готовыми к установке (бинарными) пакетами для amd64 jessie (stable)+ исходные тексты
- Зеркало необходимое для сетевой установки (udebs).
Примечание: Раскомментирование строк лишь заменяет настройки по умолчанию.
Редактируем конфигурационный файл /etc/apt/mirror.list:
Если необходимо хранить несколько зеркал для разных выпусков и архитектур, то добавляем новые строки аналогично для jessie amd64
Далее нужно убедиться что все указанные в файле mirror.list каталоги существуют.
Запуск и автоматизация apt-mirror
Для ручного запуска создания/обновления зеркала выполняем команду:
После загрузки индексных файлов apt-mirror сообщит, какой объём пакетов нужно получить:
Остаётся только дождаться завершения скачивания.
Для автоматической синхронизации и очистки зеркал нужно добавить строку в настройки cron и выставить подходящее время. Обновление официальных зеркал происходит каждые 6 часов: 3:00,9:00,15:00,21:00. Например так:
Настройка доступа к зеркалу
После завершения работы локальные копии всех указанных репозиториев окажутся в каталогах /mnt/repo/debian/mirror/имя_репозитория. Таким образом копия репозитория, которая была определена в файле mirror.list как:
окажется в каталоге /mnt/repo/debian/mirror/httpredir.debian.org/debian.
Доступ именно к этому каталогу можно открывать любым удобным для Вас способом — Web или FTP сервером. Для корректной работы обязательно необходимо добавить символические ссылки «stable»,»testing», «unstable» на те выпуски, которые вы зеркалируете (если они у вас есть).
Далее очень желательно подписать вновь созданный репозиторий.
C помощью утилиты debmirror
Создание каталога /mnt/repo/debian, в нём будет создаваться локальный репозиторий пакетов. Желательно чтобы это был примонтированный логический раздел жёсткого диска, чтобы в случае переустановки дистрибутива с нуля, при форматировании корневого раздела (/), не лишиться репозитория совсем.
Опции
тип архитектуры (i386, amd64 и т.п.)
ветка дистрибутива (stable, testing, unstable)
—nosource
не закачивать пакеты с исходным кодом
закачивать файлы переводов описаний пакетов
адрес сетевого репозитория
тип протокола передачи файлов (ftp, http, rsync)
—progress
показывать подробности загрузки
каталог, в котором будет создан ваш локальный репозиторий
показывать, что сейчас происходит
—nosource
не скачивать исходные коды
-s main,contrib,non-free
секции, которые нужно скачать
—ignore-release-gpg
игнорировать проверку gpg-ключа
—ignore-missing-release
не прерывается, если нету файла Release
По умолчанию debmirror создаёт зеркало из секций main, contrib, non-free, main/debian-installer.
Можно исключать секции ненужных вам пакетов:
Имя секции обязательно в кавычках, иначе опция проигнорируется, это будет видно по общему объёму необходимых для скачивания пакетов выводимых программой в самом начале своей работы.
Принадлежность к определенной секции вашего пакета можно узнать по команде:
Пример получения бинарного зеркала (без пакетов с исходным кодом) Debian Stable для amd64:
C помощью утилиты reprepro
Создание каталога /mnt/repo/debian, в нём будет создаваться локальный репозиторий пакетов. Желательно чтобы это был примонтированный логический раздел жёсткого диска, чтобы в случае переустановки дистрибутива с нуля, при форматировании корневого раздела (/), не лишиться репозитория совсем.
Cоздание каталога /mnt/repo/debian/conf и пустого конфигурационного файла distributions:
В файл /mnt/repo/debian/conf/distributions указываем следующие параметры (пример для testing, архитектура i386):
Описание параметров
Codename: squeeze
кодовое имя дистрибутива: sarge, etch, lenny, squeeze и т.д.
Suite: stable
вертка дистрибутива: stable, testing ,unstable ,experimental
Version: 6.x
номер версии: squeeze — 6.x
Origin: Debian
возможно у вас не Debian, а его производная, например, Ubuntu, Kubuntu, если оригинал, то Debian
Label: Debian 6.x
смесь двух секций Origin и Version
Description: Debian testing repository
расшифровка, какой репозиторий
Architectures: amd64
архитектура дистрибутива: i386, amd64 и т.д.
Components: main contrib non-free
компоненты дистрибутива: main — СПО, contrib — СПО с зависимостями от несвободного, non-free — несвободное ПО
SignWith: default
можно не указывать, если не планируете подписывать репозиторий ключём gnupg
DebIndices: Packages Release . .gz .bz2
индексные файлы Packages для двоичных пакетов и файлы Release с контрольными суммами; 3 типа: несжатые, сжатые gzip, сжатые bzip
DscIndices: Sources Release . .gz .bz2
тоже самое только для пакетов с исходным кодом
Contents: . .gz .bz2
файлы со списком содержимого каждого пакета, пригодиться при поиске файлов в установленных и ещё неустановленных пакетах
Дополнительные важные опции:
AlsoAcceptFor: unstable experimental
другие ветки
UDebComponents: main contrib non-free
Udeb-пакеты
Инициализация репозитория
Создаём каталоги, файлы, ссылки:
Базовый каталог не задан, т.к. мы уже в нём находимся.
Теперь можно добавлять пакеты в локальный репозиторий из кэша уже скачанных вами пакетов:
Параметр -b задаёт базовый каталог репозитория, в нашем случае это /mnt/repo, если вы находитесь уже в нём, то его можно не задавать, т.к. reprepro ищет файл conf/distributions в текущем каталоге.
Добавление Дебиановских исходников в репозиторий. Они состоят обычно из 2-3 файлов, главным (управляющим) из которых является dsc-файл. Чтобы все файлы исходников добавились в репозиторий, нужно использовать includedsc, остальное аналогично.
Добавление дебиановских исходников вместе с собранным из них пакетом (пакетами). После сборки пакета (пакетов) из дебиановских исходников, кроме самих пакетов и исходников появляется файл *.changes там же, где и пакеты. В этом файле перечислены как сами собранные пакеты, так и исходники. Поэтому для добавления всех этих файлов можно воспользоваться такой командой (в общем виде):
Параметр —ask-passphrase подпишет ваш репозиторий с помощью вашего ключа GnuPG. Его можно не указывать, если не планируете подписывать репозиторий ключём gnupg. На не подписанные репозитории, aptitude будет выдавать предупреждение, что он ненадежный. Для использования подписанного репозитория, надо сделать выгрузку вашего ключа, а на машине использующей репозиторий:
Добавление пакетов расположенных на CD/DVD Debian
Они уже лежат в иерархии каталога pool на дисках, но reprepro не поддерживает рекурсивный поиск по подкаталогам, но это достаточно легко обойти шаблоном (pool/*/*/*/*.deb). Пример:
Она найдёт и добавит всё пакеты.
Удаление deb-пакета из репозитория
Удаление пакетов вместе с исходниками либо всех пакетов, относящихся к одному собранному приложению (это означает, что данные пакеты в репозитории лежат в одной папке, причем имя папки и будет указывать на имя приложения):
Использование
Для использования репозитория нужно добавить его в файл /etc/apt/sources.list в виде следующей строки (в общем виде):
Подпись локального репозитория своим ключом
Генерирование ключа
Чтобы не было проблем с тем, что ключи созданы не там, рекомендуется все делать от учётной записи «root». Для генерирования ключа нужно выполнить команду:
Ответ на вопрос о типе ключа (обычно — 1):
Ответ на вопрос о длине ключа (тоже по умолчанию — 2048):
Ответ на вопрос о сроке истечения ключа (0 — никогда не истекает):
После этого может потребоваться подтвердить выбор:
Далее ввести информацию о себе и подтвердить (буква O (не ноль)). Потом задать пароль и подтвердить его. После этого начинается генерация ключа, в течение которой просят попечатать чего-нить, подвигать мышкой или еще чего поделать. Это нужно для генерации уникального ключа.
По завершении генерации будет выведена информация о сгенерированном ключе, такая как: — ID ключа — короткий набор символов: pub 1024D/5A81CBE3 2008-04-27 — отпечаток — длинный набор символов: Key fingerprint = уникальный отпечаток — и ещё немного информации. Самой важной информацией является ID ключа и отпечаток.
Экспорт ключа
Где mylocalkey.asc это имя файла, в который внесен данный экспорт (новый файл, он создатся в процессе).
Добавление ключа в apt
Команда выполняется из того же каталога, что и предыдущая (из того, где находится mylocalkey.asc):
После этого можно проверить наличие ключа в списке apt:
Выведет все ключи, в том числе и созданный.
Если нужно удалить ключ из apt, то это выполняется командой:
В этом случае ID_ключа будет 5A81CBE3 (см.выше).
Подписывание локального репозитория созданным ключом
Сначала нужно убедиться в том, что в локальном репозитории имеется файл Release (находится в каталоге /mnt/repo/debian/dists/ветка_дистрибутива). В этом файле хранится информация о репозитории.
Перейти в каталог, где находится файл Release и выполнить команду:
Источник