Etc apt sources list как редактировать 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, и репозиторий стабильных обновлений. Вот так будут выглядеть их строчки:
Просто добавьте их в конец файла /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
После добавления репозитория, прежде чем вы сможете установить пакет, необходимо обновить списки пакетов. Для этого выполните:
sudo apt update
3. Команда apt-add-repository
Эта команда делает то же самое, что мы делали вручную на первом шаге. Она добавляет репозиторий в /etc/apt/sources.list. Отлично подходит для добавления системных репозиториев. Для сторонних репозиториев её можно использовать не всегда, поскольку она добавляет кодовое имя дистрибутива в строку репозитория, а это может её сломать, если владельцами репозитория такое явно не было задумано. Например, с помощью этой команды вы можете добавить testing репозиторий:
А потом удалить, если он больше не нужен:
Выводы
В этой небольшой статье мы рассмотрели добавление репозиториев Debian на примере операционной системы Debian 10. Как видите, для этого есть несколько способов и какой из них вы будете использовать зависит от вас. А как добавляете репозитории вы? Напишите в комментариях!
Нет похожих записей
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Для любого сервера необходимо иметь возможность оперативно получить актуальное свежее программное обеспечение. Я расскажу, как настраивать список репозиториев в Debian - добавлять, удалять, редактировать разные repository в sources.list. Разберем внимательно эту тему, обратив внимание на различные нюансы, которые присутствуют, как и в любом другом деле.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.Данная статья является частью единого цикла статьей про сервер Debian.
Цели статьи
- Рассмотреть различные ветки официальных репозиториев.
- Подробно рассказать, как настраивать репозитории в debian.
- Показать на примере, как настроить локальный репозиторий.
- Составить список актуальных репозиториев для старых версий Debian.
Введение
В первую очередь расскажу, что такое репозиторий (repository) своими словами. В общем случае это место, где хранятся и поддерживаются какие-то данные. Применительно к операционным системам и конкретно к Debian, репозиторий - это файловый сервер, который хранит у себя пакеты для установки на операционную систему . Это могут быть как пакеты программ, так и обновлений для сервера в виде новых ядер, системных утилит и т.д.
Существуют repository не только для операционных систем, но и для программ. Там могут быть как уже скомпилированные и готовые к установке пакеты, так и исходные коды программных продуктов. Большинство репозиториев содержат готовые пакеты. Это относится и к стандартным репозиториям Debian.
Помимо официальных списков реп (транскрипция от сокращения repo), есть сторонние, которые поддерживают производители программ либо энтузиасты. Нужно внимательно относиться к сторонним репозиториям, не добавлять их бездумно. Там может располагаться любое ПО, в том числе не то, что заявлено изначально. Либо они могут быть взломаны для размещения вредоносных программ.
Управлением пакетами и работой с repository lists в Debian занимаются отдельные утилиты:
- apt
- apt-get
- synaptic
- aptitude и др.
В данной статье мы не будем рассматривать их отличия, так как это тема отдельного повествования. Все они работают со стандартным списком источников, который в общем случае располагается в /etc/apt/sources.list.
Если у вас еще не настроен сервер с Debian, рекомендую мои материалы на эту тему:
Список репозиториев в sources.list
Изначально, содержимое sources.list будет зависеть от того, какой источник для пакетов вы выбрали во время установки debian. К примеру, в моем случае для системы Debian 10 он выглядит следующим образом.
Для Debian 11 bullseye немного изменился формат записи для репозитория security. Теперь он выглядит так:
В общем случае файл sources.list имеет следующую структуру:
deb и deb-src | тип архива, бинарные пакеты (deb) или пакеты с исходным кодом (deb-src) |
http://site.example.com/debian | url репозитория |
distribution | псевдоним релиза (bullseye, buster, stretch и т.д.), либо класс релиза (stable, oldstable и т.д.) |
component | main, contrib или non-free набор пакетов |
Про псевдонимы релизов и наборы пакетов мы поговорим ниже более подробно в соответствующем разделе.
Помимо основного файла sources.list, репозитории могут располагаться в отдельных файлах в директории /etc/apt/sources.list.d. Формат файлов такой же, как и у основного. Обычно туда добавляют отдельно в каждый файл набор источников для какой-то определенной программы. Например, proxmox размещает в отдельном файле свой платный репозиторий.
Типы официальных репозиториев в 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. Репозиторий создан как раз для того, чтобы не прыгать между этими ветками.
Это все, что касается деления репозиториев по классам релизов. Есть еще небольшое разделение, которое явно нигде не описано и сразу не догадаешься, как оно работает и устроено.
Важное замечание. Я не рекомендую в качестве репозиториев указывать классы релизов - stable, oldstable и т.д. Всегда явно указывайте название релиза - bullseye, buster, stretch и т.д. Иначе в случае выхода нового релиза, вы при обычном обновлении получите обновление релиза, даже если не собирались его обновлять.Security updates
Существует отдельный репозиторий только для security updates. Добавить его можно следующим образом:
Смысл этого repo в том, что сюда попадают только обновления безопасности и ничего другого. Вы можете настроить автоматическую установку пакетов из этого репозитория и не переживать о том, что что-то сломается. обновления сюда попадают максимально быстро после выпуска исправлений.
Stable-updates
Еще один отдельный репозиторий для установки пакетов через механизм stable-updates. Добавить его можно следующим образом.
Через этот 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.
Это stable repo текущего релиза. Далее идет security repository для установки свежих обновлений безопасности.
И в завершении stable-updates для получения стабильных обновлений до очередного Point Release текущего дистрибутива.
Признаюсь честно, я много лет администрировал сервера с Debian, а до конца не понимал, что у меня записано в sources.list. Разобрался полностью только сейчас, когда писал статью. До этого просто копировал по привычке конфиги с репами. Догадывался о чем там речь, но точно не знал. Теперь восполнил пробел и поделился с вами информацией.
Добавить новый repository в debian
Теперь от теории перейдем к практике. Давайте вручную добавим новый репозиторий в Debian. К примеру, нам нужно установить на сервер стабильную версию MariaDB. Для этого добавим ее репозиторий. Это можно сделать либо в файле sources.list, но лучше создать отдельный в sources.list.d. Назовем его MariaDB.list.
После подключения репозитория, надо добавить его gpg ключ.
Теперь обновим кэш пакетов. Это нужно делать каждый раз после подключения нового репозитория.
Можно выполнить поиск пакета, чтобы убедиться, что новый репозиторий подключен.
Как я уже говорил, для настройки нового репозитория, вы могли просто добавить эти же 2 строки с параметрами в sources.list напрямую. Разницы никакой нет.
Зеркало официального репозитория yandex mirror
Repository yandex mirror можно так же использовать для сетевой установки систем.
Sources List Generator (генератор списка репозиториев)
В интернете есть сервисы, которые автоматически формируют sources.list на основе ваших потребностей. Вы можете использовать как свой генератор, так и воспользоваться готовым.
Я не знаю, кто ведет подобные List Generator и можно ли им доверять. Всегда проверяйте список репозиториев, который будет сгенерирован для вас. По сути, это обычный текстовый файл, который вы скопируете себе.
К примеру, я указал в List Generator, что мне надо подготовить список репозиториев со следующими параметрами:
- Репозиторий Stable
- Ветка main (просто отключил ветки contrib и non-free)
- Mirror - Russia
- Включить репозитории Security и Updates
- Добавить repo для софта - Docker, MariaDB, Nginx, NodeJS, Php, Webmin
В итоге получил вот такой sources.list
К нему еще список gpg ключей для импорта. В принципе, к списку у меня претензий нет. Все по делу. Нужно только проверить php и mariadb repository. Мне предложенные не знакомы.
В целом, я бы не рекомендовал использовать такие сервисы по генерации готовых списков. Я не вижу проблем, чтобы вручную все сделать и проконтролировать процесс.
Локальный репозиторий
Есть несколько способов создать локальный репозиторий Debian. Из того, что я пробовал, самым простым и удобным мне показался apt-mirror, но у него есть один баг, если его использовать как зеркало официальных репозиториев. Он не качает переводы в формате .gz и.xz, только .bz2. В итоге, когда будете использовать локальный репозиторий в качестве зеркала официального, получите ошибку:
Дальше создаем каталог для локального репозитория и конфиг.
Конфиг делаем примерно следующего содержания.
Выполняем инициализацию репозитория.
Теперь можно добавлять пакеты в локальный репозиторий следующей командой.
Для того, чтобы подключить локально новый репозиторий, его нужно добавить в sources.list.
После этого выполняете обновление кэша пакетов и увидите в списке репозиториев свой локальный.
Архив репозиториев для старых версий
Ниже представляю готовые настройки репозиториев для прошлых версий.
Debian 9 stretch
Репозитории Debian 9 stretch пока еще находятся в основных репозиториях:
В скором времени они тоже переедут в архив. Случится это в июне 2022 года, когда кончится период длительной поддержки. Тогда их можно будет подключить по следующим адресам:
Debian 8 jessie
Репозитории Debian 8 jessie:
Debian 7 wheezy
Репозитории Debian 7 wheezy:
Debian 6 squeeze
Репозитории Debian 6 squeeze:
Возможные ошибки
Рассмотрим наиболее популярные ошибки, которые возникают при добавлении и обновлении репозиториев.
Репозиторий не содержит файла Release
Текст ошибки, по идее, дает готовый ответ. В репозитории нет обязательного файла Release. Но суть в том, что он скорее всего есть. Дело тут чаще всего в том, что вы добавили к себе репозиторий, который не содержит указанной вами ветки. К примеру, вы добавили репозиторий в дистрибутив Buster, а в репозитории нет поддержки этого дистрибутива. Предыдущие есть, а этого нет.
Ровно эту же ошибку вы получите, если будете использовать старую, снятую с поддержки версию Debian. В какой-то момент стандартные репозитории перестанут поддерживать вашу версию дистрибутива и вы получите ошибку. Вам надо будет либо обновляться до более свежей версии, либо использовать архивные репозитории.
Заключение
Постарался собрать весь материал, который касается настройки репозиториев в Debian в одном месте. Если есть какие-то ошибки или неточности, а так же дополнения, прошу сообщить в комментариях. Писал все сам, нигде не переводил у других и не копировал. Постарался раскрыть тему своими словами максимально понятно.
Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.
Как часть своей работы, Apt использует файл содержащий список 'источников' из которых могут быть скачаны пакеты. Этот файл /etc/apt/sources.list.
Содержимое этого файла обычно имеет следующий формат (приведенные ниже данные являются вымышленными и не должны использоваться):
Тип архива
Первое слово в каждой строке, deb или deb-src, указывает тип архива. Deb указывает что архив содержит бинарные пакеты (deb), пре-компилированные пакеты для нормального использования. Deb-src указывает что это архив пакетов с иходным кодом, который содержит оригинальные исходные коды программ плюс контрольный файл Debian (.dsc) и diff.gz содержащий изменения и необходимый для пакетирования программы.
URL Репозитория
Следующая запись в строке это адрес (URL) репозитория с которого вы хотите скачивать пакеты. Основной список зеркал репозитория Debian находитсяздесь.
Дистрибутив
'distribution' может быть либо кодовое имя / псевдоним релиза (jessie, stretch, buster, sid), либо класс релиза (stable, oldstable, testing, unstable). Если вы имеете в виду отслеживание класса релиза, а затем хотите использовать название релиза, или же если вы просто хотите отслеживать цикл релизов Debian, то используйте кодовое имя.
Например, если у вас есть система работающая на Debian 11.1 "bullseye" и вы не хотите обновляться когда выйдет Debian "bookworm", в таком случае нужно использовать "bullseye" вместо "bookworm". Если вы всегда хотите помогать с тестированием дистрибутива, то используйте "testing". Если вы отслеживаете цикл "bookworm" и хотите оставаться на нём от тестирования и до конца его жизни, используйте "bookworm".
Компонент
main состоит из DFSG-compliant пакетов, которым не требуется другое ПО из других зон. Эти пакеты считаются частью дистрибуции Debian
contrib пакеты содержат DFSG-compliant ПО, но у них зависимостей из зоны main (возможно упакованы в non-free).
non-free содержит ПО, которое не соответствует DFSG.
Пример sources.list
Ниже приведен пример файла sources.list для Debian 9/Stretch.
Если вы хотите подключить репозиторий с несвободными компонентами системы, то добавьте contrib non-free после main:
Для редактирования вашего файла sources.list, вы можете воспользоваться утилитой software-properties-gtk. Расположенной в Menu → System → Administration → Software Sources.
Используем Tor вместе с Apt
Apt может получать и загружать обновления через Tor. Для этого вам нужно установить пакеты tor и apt-transport-tor. Затем вы можете использовать официальные onion-ресурсы в Debian.
Ниже приведен пример файла sources.list использующий onion-ресурсы в Debian 9/Stretch:
CD-ROM
Если вы хотите использовать CD-ROM для установки пакетов или автоматического обновления системы через APT, то можно записать его в /etc/apt/sources.list. Для этого можно использовать программу apt-cdrom, например:
Можно использовать -d для каталога точки монтирования CD-ROM или добавить точку монтирования не-CD (т.е. USB накопитель).
Проблемы с разрешением доменных имен
Если у вас сломалось/не работает разрешение имён. Например, ниже запущен порт S/390x в QEMU Chroot:
Вы можете временно обойти эту проблему, указав IP адрес репозитория (получив его с другой машны):
Debug Symbol Packages
Для отладки аварийных остановок работы программ часто требуются соответствующие файлы символов отладки. Для большинства пакетов Debian они находятся в пакетах dbgsym. Они доступны из отдельного архива.
Понимание apt и sources.list
Менеджер пакетов для Debian и его инструмент .apt, который переводиться как Advanced Package Tool и представляет собой набор инструментов для управления пакетами Debian, и поэтому приложения, установленные в вашей системе Debian .apt позволяет:
- Установку приложений
- Удаление приложений
- Обновление приложений
- Исправление сломанных пакетов и т.д.
apt способен решить проблемы зависимостей и получать требуемые пакеты из назначенных репозиториев пакетов. Он делегирует фактическую установку и удаляет пакеты для DPKG .apt в основном использует инструмент командной строки, но есть доступны инструменты GUI, которые вы можете использовать.
Файл /etc/apt/sources.list в Debian используется Apt как часть своей работы. Этот файл содержит список «sources», из которых могут быть получены пакеты. Записи в этом файле обычно имеет следующий формат.
Записи, приведенные выше, являются вымышленными и не должны использоваться. Ниже содержимое этого файла, которое разделить на несколько разделов:
Тип архива:
- deb означает URL, при условии, что содержатся заранее скомпилированные пакеты. Эти пакеты, установленные по умолчанию при использовании менеджеров пакетов, как apt-get или aptitude.
- deb-src указывают на источники пакетов с файлом управления Debian (.dsc) и diff.gz, содержащий изменения, необходимые для упаковки программы.
Хранилище URL:
Следующая запись в строке является URL в хранилище, куда пакеты будут загружены. Вы можете найти основной список Debian пакетов репозитория из зеркала Debian Worldwide sources.list.
Читать Как установить и настроить частный анонимный прокси сервер Squid на Ubuntu/DebianРаспределение:
«Распределение» может быть либо код релиза имя/псевдоним (jessie, stretch, buster, sid) или класс релиза (старое стабильное, стабильное, тестирование, нестабильный) соответственно. Если вы имеете в виду отслеживание, то класс выпуска может использовать имя класса, если вы хотите, отслеживать релизов Debian, используйте кодовое имя.
Компонент
Есть правило, три компонента, которые могут быть использованы на Debian, а именно:
Полный файл sources.list на Debian 9 будет выглядеть следующим образом:
Затем, чтобы получить contrib и non-free, добавьте contrib non-free после основных, как показано ниже:
После того, как вы внесли изменения в файл sources.list, вы должны выполнить команду:
Это обеспечит синхронизацию apt. Затем вы можете установить новые пакеты из репозитория.
Добавление пользовательских хранилищ
Это не всегда целесообразно, добавлять собственные и сторонние репозитории в файл /etc/apt/sources.list. Вместо этого вы можете создать файл в директории /etc/apt/sources.list.d. Например, чтобы установить docker на Debian 9 из его вышестоящего хранилища, вы сделаете:
После этого вы можете продолжить обновление apt-cache и установить пакет Docker из него. Это рекомендуемый способ добавления каких-либо других репозиториев третьих лиц.
Импорт apt ключей
При работе с apt и хранилищем sources.list, в какой-то момент вы должны импортировать ключи GPG. Обычно это делается с помощью команды apt-key, чей синтаксис следующий:
Читать Проверка свободного места на VPS или выделенном сервере + Email-оповещение с MonitВ качестве примера, чтобы загрузить Docker ключи репозитория GPG, вы укажете следующее:
В общем, работать с файлом sources.list относительно легко. Единственное, что вы должны быть увлечены ставит правильное распределение. Если при стабильной установке вы добавляете репозиторий sid с нестабильными пакетами, вы можете в конечном итоге нарушить вашу систему или столкнуться со многими неразрешенными зависимостями.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Читайте также: