Добавление репозитория в Debian, примеры sources.list
Закомментируем репозиторий cdrom знаком #
1 |
#deb cdrom:[Ubuntu-Server 9.04 _Jaunty Jackalope_ - Release i386 (20090421.1)]/ jaunty main restricted |
Типы официальных репозиториев в Debian
Как я уже показал выше, в sources.list используются псевдонимы, либо классы релиза, а так же разные ветки наборов пакетов. С псевдонимами релизов все понятно. Они названы в честь персонажей мультфильма История игрушек (Toy story) – Wheezy, Jessie, Stretch, Buster, Bullseye и т.д. А вот насчет классов релизов поговорим отдельно. Существуют следующие официальные классы релизов Debian.
Stable
Стабильная ветка официального текущего релиза Debian. То есть это самая свежая и актуальная версия, которую рекомендуется использовать. Официальный репозиторий стабильной ветки содержит проверенный набор программ, зачастую не очень свежих версий. Это плата за надежность. В production рекомендуется использовать пакеты именно из репозитория stable.
В этом репозитории регулярно публикуются все актуальные обновления текущего релиза. Он формируется из ветки Testing, которая в момент релиза новой версии превращается в Stable.
Oldstable
Oldstable – кодовое имя предыдущего stable repository. Для этого репозитория выпускаются обновления безопасности. Ветка Oldstable формируется из Stable предыдущего релиза на момент публикации нового.
Testing
Testing содержит в себе текущее состояние разработки нового стабильного релиза. После его выхода, testing становится stable. Пакеты в testing попадают из репы unstable. В общем случае использовать репозиторий testing следует только для тестовых целей, чтобы посмотреть на новый релиз.
Для этого можно сделать чистую установку текущего релиза, затем изменить repo со stable на testing и обновиться. Вы получите свежую версию тестового релиза, который готовится к выпуску.
Unstable (sid)
Sid это repository с самым свежим программных обеспечением. Проблема только в том, что оно еще не протестировано достаточным образом для использования. Если вы точно уверены, что вам нужен новый софт и он не сломает вам систему, можете поставить его из unstable репозитория. Но в общем случае, делать это не рекомендуется.
Даже если софт из unstable не повредит работе системы, он может нарушить зависимости пакетов, так что потом может быть затруднительно вернуться на stable repo.
Experimental
Experimental repository содержит пакеты и утилиты, которые в данный момент только разрабатываются и находятся в состоянии alpha версии. Этот репозиторий предназначен только для разработчиков и тестировщиков. Если будете его использовать в рабочей системе, с большой долей вероятности, сломаете ее.
Backports
Backports repository выступает как некий компромисс между стабильностью основной ветки и свежим набором программ из ветки testing. Репозиторий backports содержит пакеты преимущественно из testing и немного из unstable (только для обновлений безопасности).
Пакеты из backports там, где это возможно, устанавливаются без новых библиотек, которых нет в стабильной версии. Это сделано, чтобы можно было с большей вероятностью опять вернутся на stable, в случае необходимости.
Если вам нужен софт из веток testing и unstable, лучше использовать backports. Репозиторий создан как раз для того, чтобы не прыгать между этими ветками.
Это все, что касается деления репозиториев по классам релизов. Есть еще небольшое разделение, которое явно нигде не описано и сразу не догадаешься, как оно работает и устроено.
Security updates
Существует отдельный репозиторий только для security updates. Добавить его можно следующим образом:
1 2 |
deb http://security.debian.org/debian-security bullseye-security main contrib non-free deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free |
Смысл этого repo в том, что сюда попадают только обновления безопасности и ничего другого. Вы можете настроить автоматическую установку пакетов из этого репозитория и не переживать о том, что что-то сломается. обновления сюда попадают максимально быстро после выпуска исправлений.
Stable-updates
Еще один отдельный репозиторий для установки пакетов через механизм stable-updates. Добавить его можно следующим образом.
1 2 |
deb http://deb.debian.org/debian bullseye-updates main deb-src http://deb.debian.org/debian bullseye-updates main |
Через этот repository вы будете по мере выпуска получать обновления, которые готовятся к публикации в очередном обновлении релиза. Так называемые Point Releases – 10.1, 10.2 и т.д. Случаются они не часто, примерно раз в 2-3 месяца, но проверенные для них обновления можно получить ранее как раз с помощью stable-updates.
Ветки main, contrib, non-free
Каждый официальный репозиторий Debian имеет по 3 ветки:
- main состоит из DFSG-compliant пакетов, которым не требуется другое ПО из других источников. Эти пакеты считаются частью дистрибутива Debian. Они полностью свободны для любого использования.
- contrib пакеты так же содержат DFSG-compliant ПО, но их зависимости могут требовать дополнительное ПО, которое может быть в других источниках, например ветке non-free.
- non-free содержит все остальное ПО, которое не соответствует DFSG.
DFSG – Debian Free Software Guidelines, критерии Debian по определению свободного ПО. В любом случае, пакеты из всех трех веток main, contrib и non-free полностью протестированы и подготовлены для работы с дистрибутивом Debian.
Теперь, зная всю теорию по репозиториям в Debian, мы можем проанализировать файл sources.list, который мы получили после установки. В нем подключены 3 репозитория с ветками main.
1 2 |
deb http://deb.debian.org/debian bullseye main deb-src http://deb.debian.org/debian bullseye main |
Это stable repo текущего релиза. Далее идет security repository для установки свежих обновлений безопасности.
1 2 |
deb http://deb.debian.org/debian-security/ bullseye-security main deb-src http://deb.debian.org/debian-security/ bullseye-security main |
И в завершении stable-updates для получения стабильных обновлений до очередного Point Release текущего дистрибутива.
1 2 |
deb http://deb.debian.org/debian bullseye-updates main deb-src http://deb.debian.org/debian bullseye-updates main |
Признаюсь честно, я много лет администрировал сервера с Debian, а до конца не понимал, что у меня записано в sources.list. Разобрался полностью только сейчас, когда писал статью. До этого просто копировал по привычке конфиги с репами. Догадывался о чем там речь, но точно не знал. Теперь восполнил пробел и поделился с вами информацией.
Добавить новый repository в debian
Теперь от теории перейдем к практике. Давайте вручную добавим новый репозиторий в Debian. К примеру, нам нужно установить на сервер стабильную версию MariaDB. Для этого добавим ее репозиторий. Это можно сделать либо в файле sources.list, но лучше создать отдельный в sources.list.d. Назовем его MariaDB.list.
1 2 |
deb [arch=amd64,arm64,ppc64el] http://mirror.mephi.ru/mariadb/repo/10.6/debian bullseye main deb-src http://mirror.mephi.ru/mariadb/repo/10.6/debian bullseye main |
После подключения репозитория, надо добавить его gpg ключ.
1 2 3 |
# curl -LsSO https://mariadb.org/mariadb_release_signing_key.asc # chmod -c 644 mariadb_release_signing_key.asc # mv -vi mariadb_release_signing_key.asc /etc/apt/trusted.gpg.d/ |
Теперь обновим кэш пакетов. Это нужно делать каждый раз после подключения нового репозитория.
1 |
# apt update |
Можно выполнить поиск пакета, чтобы убедиться, что новый репозиторий подключен.
1 |
# apt search mariadb-server |
Как я уже говорил, для настройки нового репозитория, вы могли просто добавить эти же 2 строки с параметрами в sources.list напрямую. Разницы никакой нет.
Зеркало официального репозитория yandex mirror
В рунете популярен репозиторий Яндекса под названием Yandex.Mirror – https://mirror.yandex.ru. Это зеркало популярных дистрибутивов Linux, Freebsd и других проектов, в том числе и Debian. Работает по протоколам HTTP, FTP и rsync.
Зеркало Яндекс можно использовать как для обновления пакетов, так и загрузки iso образов. Образы последней стабильной версии Debian можно скачать отсюда – https://mirror.yandex.ru/debian-cd/current/amd64/. Для использования Yandex.Mirror в регулярных обновлениях Debian, приведите sources.list к следующему виду.
1 2 3 4 5 6 7 8 |
deb http://mirror.yandex.ru/debian bullseye main deb-src http://mirror.yandex.ru/debian bullseye main deb http://mirror.yandex.ru/debian bullseye-updates main deb-src http://mirror.yandex.ru/debian bullseye-updates main deb https://mirror.yandex.ru/debian-security bullseye-security main deb-src https://mirror.yandex.ru/debian-security bullseye-security main |
Repository yandex mirror можно так же использовать для сетевой установки систем.
Sources List Generator (генератор списка репозиториев)
В интернете есть сервисы, которые автоматически формируют sources.list на основе ваших потребностей. Вы можете использовать как свой генератор, так и воспользоваться готовым.
Пример такого генератора, который вы можете установить себе и настроить для использования – debgen. Исходники раньше были на github, но потом пропали. А вот его готовая реализация с наполнением – https://debgen.simplylinux.ch/.
Я не знаю, кто ведет подобные List Generator и можно ли им доверять. Всегда проверяйте список репозиториев, который будет сгенерирован для вас. По сути, это обычный текстовый файл, который вы скопируете себе.
К примеру, я указал в List Generator, что мне надо подготовить список репозиториев со следующими параметрами:
- Репозиторий Stable
- Ветка main (просто отключил ветки contrib и non-free)
- Mirror – Russia
- Включить репозитории Security и Updates
- Добавить repo для софта – Docker, MariaDB, Nginx, NodeJS, Php, Webmin
В итоге получил вот такой sources.list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#------------------------------------------------------------------------------# # OFFICIAL DEBIAN REPOS #------------------------------------------------------------------------------# ###### Debian Main Repos deb http://ftp.ru.debian.org/debian/ stable main deb http://ftp.ru.debian.org/debian/ stable-updates main deb http://security.debian.org/ stable-security main #------------------------------------------------------------------------------# # UNOFFICIAL REPOS #------------------------------------------------------------------------------# ###### 3rd Party Binary Repos ###Docker CE deb [arch=amd64] https://download.docker.com/linux/debian bullseye stable ###MariaDB deb [arch=i386,amd64] http://mirror.23media.de/mariadb/repo/10.6/debian bullseye main deb-src [arch=i386,amd64] http://mirror.23media.de/mariadb/repo/10.6/debian bullseye main ###nginx deb [arch=amd64,i386] http://nginx.org/packages/debian/ bullseye nginx deb-src [arch=amd64,i386] http://nginx.org/packages/debian/ bullseye nginx ###NodeJs deb https://deb.nodesource.com/node_12.x bullseye main deb-src https://deb.nodesource.com/node_12.x bullseye main ###PHP deb https://packages.sury.org/php/ bullseye main ###Webmin deb http://download.webmin.com/download/repository sarge contrib |
К нему еще список gpg ключей для импорта. В принципе, к списку у меня претензий нет. Все по делу. Нужно только проверить php и mariadb repository. Мне предложенные не знакомы.
В целом, я бы не рекомендовал использовать такие сервисы по генерации готовых списков. Я не вижу проблем, чтобы вручную все сделать и проконтролировать процесс.