Из этой статьи вы узнаете что такое репозитории в Linux. Мы научимся их настраивать на примере Debian 11 и Ubuntu 22.04.
В этом руководстве мы наглядно покажем, как добавить репозиторий в Debian.
APT проверяет работоспособность всех пакетов и зависимостей перед его установкой. Так же APT извлекает пакеты из одного или нескольких репозиториев. Репозиторий (источник пакетов программы) — это в основном сетевой сервер. Пакет — это отдельный файл с расширением deb, содержащий полное приложение или его часть. В установленной ОС репозитории настроены по умолчанию, они содержат лишь несколько пакетов из огромного количества доступных бесплатных программ.
И так давайте разберем как добавить репозиторий пакетов в Debian.
Debian is one of the most popular Linux distributions of all time, and now it got a new version release Debian 11 Bullseye. There is a lot of derivatives that came out of Debian, of which the most popular is Ubuntu.
Debian Linux distribution is widely used because of it’s core package management — APT, and it’s package format .deb. Every application, system utility or game in Debian, is distributed as a package. You can install those packages onto your system using APT (automatically or manually).
In this guide, we will briefly see new features of Debian 11, get familiar with the APT package manager, and learn how to configure it’s sources.list file on Debian 11 Bullseye.
Let’s see what are the new features and the most important changes.
смотрим qemu(kvm) в Debian 11 — версия 5.2, смотрим в Астре 1.7 (которая на базе Debian 10) — версия 7.0, libreoffice D11 v 7.0.4, Astra 1.7 v 7.3.6, еще нужны примеры у кого старее?))
Почему я предпочитаю включать разом все репы — потому что это — нормальная практика для всех Linux — дистрибутивов, чтобы адекватно работал менеджер пакетов в системе. .
не так много ПО потребуется из сторонних репов, но, да, так делать можно, однако сначала стоит посмотреть родные репы..хотя, вы наверное не в курсе что у астры есть 4 репа.
Не холивара для, но для общего развития, Астра далека от идеала, но это уже совсем не Дебиан 10 и пакетная база сильно отличается даже от «более современного» 11
- Что такое репозиторий
- Importing apt keys
- New features of Debian 11 Bullseye
- Distribution
- Добавление репозитория в Debian из графического интерфейса
- Component
- Файл Release
- Добавление сторонних репозиториев
- Открытый ключ репозитория
- Проверка добавленного репозитория
- Archive type
- Вариант использования официальных репозиториев
- Contents and sections of Debian sources. list file
- Конфиги со списком репозиториев
- Классы релизов в Debian
- Добавление репозитория из терминала Debian
- Добавления репозитория вручную
- Добавление репозитория с помощью add-apt-repository
- What is APT manager and it’s sources. list
- Adding custom repositories
- Using Apt with Tor
- Repository URL
- Архитектура пакетов
- Как подключить стандартные репозитории Debian 10 Buster
- Итог
- Conclusion
- Заключение
Что такое репозиторий
Репозиторий – это своеобразное хранилище приложений. У многих GNU/Linux дистрибутивов есть свои репозитории. А также разработчики какого-нибудь отдельного программного обеспечения могут создать свой репозиторий. Но в этом случае такой репозиторий нужно разделить на ветки, одна ветка будет подходить для одной Linux системы, а другая для другой.
В репозиториях, которые подходят для Debian и Ubuntu приложения хранятся в виде архивов. Такие архивы называются пакетами. Эти пакеты имеют особый формат – deb. Есть ещё другой, популярный, формат пакетов – rpm, но системы полагающиеся на такие пакеты я не рассматриваю.

Linux сервера и их репозитории
На этом уроке мы познакомимся с подключением системных и сторонних репозиториев. А пакетные менеджеры рассмотрим позже.
В связи с этим многие начинают интересоваться данными дистрибутивами Linux, устанавливать их и на свои компьютеры и тестировать установку различных пакетов и просто анализировать плюсы и минусы возможного перехода на такие ОС.
Сегодня мы разберем такой простой и в то же время очень важный момент — добавление сторонних репозиториев в дистрибутив Astra Linux, а именно репозиториев от Debian 9 “stretch”. Благодаря этим репозиториям у нас появляется хоть какая-то возможность расширить пакетную базу и получить доступ к основным необходимым при работе утилитам и программам.
- Идем в пуск и открываем терминал fly
- Устанавливаем пакет debian-archive-keyring
sudo apt install debian-archive-keyring -y
sudo apt install apt-transport-https ca-certificates -y
- Открываем «Менеджер пакетов Synaptic», переходим в настройки и жмем Репозитории.
- Добавляем новые репозитории как на рисунке ниже

Первый
https://deb.debian.org/debian/
stretch
non-free contrib main
Второй
https://security.debian.org/debian-security/
stretch/updates
non-free contrib main
sudo apt-get update -y && sudo apt-get upgrade -y
Теперь можно легко установить ранее недоступные утилиты, например Neofetch
sudo apt install neofetch
Системное администрирование, подключение и настройка оборудования, планирование и монтаж локальных сетей, внедрение и настройка 1С Розница.
Importing apt keys
When working with apt and sources.list repositories, at some point you are required to import GPG keys. This is usually done using the command apt-key, with syntax:
Or you can download the GPG key directly and install it from the current directory.As an example, to download docker repository GPG keys, you’ll run:
After that you’ll run:
$ sudo apt-get update
$ sudo apt-get install docker-ce
New features of Debian 11 Bullseye
The most important features of new Debian 11 Bullseye are:
- GNOME Desktop 3.38
- Linux Kernel 5.10 series
- LibreOffice 7.0
- OpenJDK 11.0
- Driverless scanning
- Improved man pages
- Kernel support for exFAT
- 11294 new packages
- Alternative init systems are supported
- Persistent journal functionality by default
Distribution
The distribution can be either the release code name / alias (jessie, stretch, buster, bullseye, sid) or the release class (old stable, stable, testing, unstable) respectively. If you intend to track a release class then use the class name, if you want to track a Debian point release, use the code name.
Добавление репозитория в Debian из графического интерфейса
Так же вы можете добавить репозиторий пакетов из графического интерфейса Debian. Я использую Debian 11 в среде рабочего стола Gnome.
На рабочем столе найдите «Software & Updates«.

В разделе этом разделе выберите вторую вкладку «Other Software» (Другое Программное обеспечение)

Как добавить репозиторий в Debian через APT
Далее нажмите кнопку «Добавить» (Add). Затем добавьте строку APT и нажмите кнопку «Добавить источник» (Add Source), это обновит /etc/apt/sources.list.

Component
There are normally three components which can be used on Debian, namely:
- main — This contains packages that are part of Debian distribution. These packages are DFSG compliant.
- contrib -The packages here are DFSG compliant, but contains packages which are not in the main repository.
- non-free — This contains software packages which do not comply with the DFSG.
deb http://httpredir.debian.org/debian bullseye main non-free contrib
deb-src http://httpredir.debian.org/debian bullseye main non-free contrib
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
If your sources.list file differs, you will have to add contrib and non-free sections after main to have all of the packages listed. If this is the case on your system, you can edit the file /etc/apt/sources.list with nano, vim or any other editor to make changes. We will go through that in the next section of the article.
If you also need the Backports, contrib, and non-free components, add bullseye-backports lines. For example, for Debian 11 Bullseye:
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
deb-src http://deb.debian.org/debian bullseye-backports main contrib non-free
If your sources.list contains all of the sections we can run package update using apt. This will ensure your apt index is synchronized. Then you can install new packages from the repository.
In some cases you can get errors with repositories while updating the package lists. In that case use apt rather than apt-get. apt is preferred over apt-get for interactive use.
$ sudo apt update
$ sudo apt upgrade -y
If that doesn’t fix the issue then second option is to use —allow-releaseinfo-change
$ sudo apt-get —allow-releaseinfo-change update
Файл Release

Файл Release в репозитории для Ubuntu Jammy
Он содержит информацию о данной ветке репозитория, например для Ubuntu Jammy файл содержит следующее:
Origin: Ubuntu
Label: Ubuntu
Suite: jammy
Version: 22.04
Codename: jammy
Date: Thu, 21 Apr 2022 17:16:08 UTC
Architectures: amd64 arm64 armhf i386 ppc64el riscv64 s390x
Components: main restricted universe multiverse
Description: Ubuntu Jammy 22.04
MD5Sum:
*** а здесь контрольные суммы для каждого пакета из репозитория ***
Файл Release – один из самых важных файлов для работы репозитория. Когда пакетный менеджер обновляет список пакетов, то он открывает адрес репозитория и читает этот файл. Если этого файла нет, то репозиторий будет помечен как неисправный и не будет использоваться.
Добавление сторонних репозиториев
Добавлять репозитории можно в основной конфиг: /etc/apt/sources.list или создавать отдельные конфиги в каталоге /etc/apt/sources.list.d/. Сам я считаю что правильнее для каждого стороннего репозитория создавать отдельные конфиги.
Например, чтобы подключить репозиторий nginx создайте следующий конфиг. Для Debian:
Или для Ubutnu:
Допустим, мы прописали дополнительный репозиторий для nginx, но как системе понять из какого репозитория брать пакет для установки? Ведь пакеты для nginx есть и в системном репозитории и в репозитории от самого nginx. Чтобы ответить на этот вопрос придумали приоритеты репозиториев.
По нашему примеру для nginx нужно создать следующий файл:
$ sudo nano /etc/apt/preferences.d/99nginx
Package: *
Pin: origin nginx.org
Pin: release o=nginx
Pin-Priority: 900
- Package: имя пакета. Можно поставить знак * чтобы применить приоритет для всех пакетов из этого репозитория. Также можно указать несколько имён через пробел;
- Pin: опции прикрепления. Существует много опций, я разберу лишь некоторые:origin “имя автора или поставщика”;release o=nginx – означает что в файле Release репозитория есть поставщик (Origin = o) с именем nginx;release l=Debian – означает что в файле Release репозитория есть Label (l) с именем Debian;
- origin “имя автора или поставщика”;
- release o=nginx – означает что в файле Release репозитория есть поставщик (Origin = o) с именем nginx;
- release l=Debian – означает что в файле Release репозитория есть Label (l) с именем Debian;
- Pin-Priority: приоритет.
Приоритет может быть в следующих диапазонах:
- 990 <= P < 1000 – пакет будет установлен из этого репозитория, если не установлена более новая версия;
- 500 <= P < 990 – пакет будет установлен, если нет пакета принадлежащего к целевому выпуску или не установлена более новая версия;
- 100 <= P < 500 – пакет будет установлен, если нет кандидатов из других репозиториев или установленного пакета более новой версии;
- 0 < P < 100 – пакет будет установлен, только если он ещё не установлен (любой версии) и если нет кандидатов из других репозиториев;
- P < 0 – пакет не будет установлен ни при каких условиях;
- P = 0 – не используется.
Приоритеты с 500 по 990 и с 990 по 1000 очень похожи. Чтобы их отличить нужно понять что такое целевой выпуск. Для Ubuntu или Debian это название версии дистрибутива. Например для Ubuntu – jammy, а для Debian – bullseye. Но это имя ещё нужно задать таким способом:
Открытый ключ репозитория
И так, репозиторий мы добавили, приоритет настроили. Давайте попробуем применить изменения:
И тут мы видим ошибку, что нам не хватает открытого ключа. Я привёл пример для Debian, но в Ubuntu будет подобная ситуация. Дело в том что современные репозитории шифруются с помощью закрытого ключа и чтобы его использовать, нам нужно установить в систему открытый ключ.
Чтобы это сделать, вначале установим необходимые инструменты:
Внимание! Утилита gnupg2 для Ubuntu доступна только в репозитории universe, если вы закомментировали эти источники, то разкомментируете их. Это строчки:
deb http://ru.archive.ubuntu.com/ubuntu jammy universe
deb http://ru.archive.ubuntu.com/ubuntu jammy-updates universe
И не забудьте применить изменения, выполнив:
$ sudo apt update
А дальше скачаем открытый ключ (с помощью wget):
$ wget https://nginx.org/keys/nginx_signing.key
И пробуем ещё раз применить изменения:
На этот раз всё прошло успешно.
Кстати, если вы хотите в источнике пакетов прописать архитектуру и открытый ключ, то это делается через пробел:
Проверка добавленного репозитория
Ну и чтобы понять из какого репозитория будет установлен пакет, выполните команду:
Из вывода становится ясно что пакет nginx ещё не установлен в систему, а кандидатом на установку является пакет с версией 1.20.2 из репозитория http://nginx.org/packages/debian. Приоритет у всех пакетов, кстати стал равным = 990. Это произошло после того, как мы установили целевой выпуск = bullseye. Так как все репозитории относятся к этому выпуску, то на назначенный мною приоритет система перестала смотреть, а назначила репозиториям для bullseye такой приоритет.
Archive type
The first entry on each line — deb or deb-src represents the type of repository archives.
Вариант использования официальных репозиториев
Для того чтобы уменьшить вероятность поломки вашей системы из-за непроверенных обновлений, можно немного сократить количество репозиториев в системах Debian и в Ubuntu.
Вообще в Debian дан список самых безопасных репозиториев по умолчанию. Можем лишь закомментировать репозитории с исходниками, так как скорее всего вам они пока не понадобятся. Напомню, что такие строки начинаются со слова deb-src. А если понадобятся вы их просто раскомментируете. После правки у нас осталось 3 источника пакетов:
Ubuntu при установке прописала намного больше своих репозиториев. Но их тоже можно свести к трем. Например, я считаю нужным отключить universe, multiverse и jammy-backports репозитории на сервере. После правки список репозиториев также состоит из 3-ёх строк:
Чтобы применить изменения, выполните на обоих системах команду:
Эта команда подключится к каждому репозиторию, посмотрит какие пакеты можно обновить и из каких источников. И сохранит локальных кэш. После выполнения этой команды система будет знать какие пакеты из каких репозиториев можно получить, а также версии этих пакетов. Но если в репозиторий добавят более новую версию какого-нибудь пакета, то система об этом узнает лишь после следующего выполнения этой команды.
А если хотите обновить систему, то выполните команду:
Эта команда уже скачивает все обновления и устанавливает их.
Кстати утилита apt – это и есть менеджер пакетов. Рассмотрим её и другие менеджеры пакетов в следующих статьях.
Contents and sections of Debian sources. list file
- Archive type
- Repository URL
- Distribution
- Component
We will now go into detail about each of these sections.
Конфиги со списком репозиториев
Пакетные менеджеры, которые умеют устанавливать пакеты из репозиториев, должны знать адреса репозиториев. И эти адреса записываются в конфиг – /etc/apt/sources.list. А также можно создавать дополнительные конфиги с расширением .list в каталоге /etc/apt/sources.list.d/. Всё это справедливо и для Debian и для Ubuntu.
Если помните, в процессе установки систем мы выбирали репозиторий:
- для Debian – deb.debian.org;
- для Ubuntu – ru.archive.ubuntu.com.
Этот файл состоит из строк, а строки состоят из следующих столбцов:
Классы релизов в Debian
Рассматривая выше ветки репозиториев Debian мы увидели следующее:
- bullseye;
- bullseye-updates;
- bullseye-security.
Но, помимо кодовых имён версий системы, в названиях веток, можно использовать специальные классы релизов:
- stable – ссылается на текущей стабильный репозиторий Debian, сейчас это bullseye. Как только выйдет новая версия Debian, то stable будет ссылаться на более новую версию;
- oldstable – ссылается на предыдущий стабильный репозиторий;
- testing – ссылается на специальную ветку репозитория для разработки нового стабильного релиза;
- unstable – ссылается на самые свежие, но не протестированные пакеты;
- experimental – здесь хранятся пакеты, которые только начали разрабатывать;
- backports – ссылается на testing и unstable, но только для обновлений безопасности.
То есть вы можете изменить свои репозитории на testing, и быть на острие прогресса:
### Это только пример, существует большая вероятность что система очень скоро повредится из за непроверенных обновлений ###
deb http://deb.debian.org/debian/ testing main
deb-src http://deb.debian.org/debian/ testing main
deb http://security.debian.org/debian-security testing-security main
deb-src http://security.debian.org/debian-security testing-security main
deb http://deb.debian.org/debian/ testing-updates main
deb-src http://deb.debian.org/debian/ testing-updates main
Добавление репозитория из терминала Debian
Вы можете добавить репозиторий пакетов в Debian двумя способами из командной консоли: вручную или с помощью apt. Информация о репозитории пакетов хранится в названном файле /etc/apt/sources.list. А также может храниться в любом файле внутри каталога /etc/apt/sources.list.d/.
Добавления репозитория вручную
Чтобы добавить репозиторий вручную, вам нужно отредактировать файл со списком /etc/apt/sources. Записи в этом файле имеют следующий синтаксис:
Archive-Type Repository-URL Distribution Component1 Component2 Component3
Archive Type — Первым словом строки может быть deb или deb-src. Deb указывает, что в архиве хранятся пакеты .deb, а deb-src указывает, что в архиве есть исходные пакеты.
Repository URL — Эта запись является URL адресом репозитория, из которого должен будет загружен пакет.
Distribution — это может быть либо кодовое имя выпуска, псевдоним (например, «bullseye«), либо класс выпуска (oldstable, stable, testing, unstable) соответственно.
Component — может быть main, contrib или non-free. Разберем все по порядку:
- Main содержит пакет, совместимый с DFSG, часть дистрибутива Debian.
- Contrib содержит пакет, совместимый с DFSG, который имеет зависимости, отсутствующие в main.
- Non-freeСодержит пакеты, которые не соответствуют требованиям DFSG.
Давайте например добавим репозиторий VirtualBox в Debian Bullseye. Сначала откройте файл списка для редактирования /etc/apt/sources.
Теперь вы можете добавить строку репозитория пакетов.
Ниже показан файл /etc/apt/sources из моей системы Debian 11. Он содержит часть официального репозитория Debian, который был добавлен во время установки Debian. Здесь же вы можете наблюдать недавно добавленный репозиторий.

После добавления репозитория apt не забудьте обновить индекс пакета. Делается это всеми известной командой
Добавление репозитория с помощью add-apt-repository
add-apt-repository — это скрипт на Python, используемый для добавления репозитория APT или PPA. Эта утилита входит в комплект поставки software-properties-common.
Синтаксис add-apt-repositoryвыглядит следующим образом:
Например, вам нужно установить Docker из официального репозитория. Сначала обновите индекс пакета и установите все зависимости.
$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
Импорт ключа GPG репозитория:
Теперь добавьте репозиторий Docker с помощью add-apt-repository:
Это добавит информацию о репозитории в файл etc/apt/sources.
Затем обновите индекс пакета, а далее можно установить пакет docker.
sudo apt update apt-cache policy docker-ce
Чтобы удалить добавленное хранилище, введите:
add-apt-repository также позволяет добавлять репозиторий PPA. PPA означает личный архив пакетов, который позволяет разработчикам создавать свои собственные хранилища.
Например, чтобы добавить репозиторий PPA для libreoffice, введите:
$ sudo add-apt-repository ppa:libreoffice/libreoffice-7-0
После добавления PPA вы можете установить соответствующий пакет с помощью apt.
What is APT manager and it’s sources. list
APT is the package manager used in Debian and its derivatives. APT stands for Advanced Package Tool and it is a set of tools for managing Debian packages, and therefore all of the applications installed on your Debian system.APT is used to install, update or remove applications and packages.
APT is capable of resolving dependency problems and retrieving requested packages from package repositories. It delegates the actual installation and removal of packages to dpkg — low level core Debian Package tool. APT is mainly used by its command-line tools, but there are also GUI tools available.
This is the list we want on our system:
$ cat /etc/apt/sources.list
deb http://httpredir.debian.org/debian bullseye main non-free contrib
deb-src http://httpredir.debian.org/debian bullseye main non-free contrib
deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
We will now discuss the contents of this file and it’s different sections.
Adding custom repositories
$ sudo vim /etc/apt/sources.list
Add the content:
Another way is to use the apt command used for adding third-party repositories:
You can then proceed to update apt-cache and install docker-ce package with apt-get. This is the recommended way to add any other third party repository.
You’ll notice this wont work because you don’t have the GPG key of the docker repository on your system. We’ll cover that next.
Using Apt with Tor
If you’re concerned with privacy issues, or unsecure data transfer, you can use Tor with Debian repositories in your sources.list file. Apt can retrieve and download updates through Tor. For this to work you need to install the tor and apt-transport-tor packages. You can then use the official onion services provided by Debian.
deb tor+http://vwakviie2ienjx6t.onion/debian bullseye main
deb-src tor+http://vwakviie2ienjx6t.onion/debian bullseye main
deb tor+http://sgvtcaew4bxjd7ln.onion/debian-security bullseye-security main
deb-src tor+http://sgvtcaew4bxjd7ln.onion/debian-security bullseye-security main
deb tor+http://vwakviie2ienjx6t.onion/debian bullseye-updates main
deb-src tor+http://vwakviie2ienjx6t.onion/debian bullseye-updates main
Note: Debian less support https due to the fact that Debian package distribution has a mechanism to verify packages using GPG. The package signature scheme helps better than https in this case. You can use https mirror but make sure you have installed apt-transport-https package installed.
Repository URL
The next section on the entry line is an URL of the repository from where the packages will be downloaded from. You can find the main list of Debian repositories from Debian Worldwide sources.list mirrors.
Архитектура пакетов
Если вы ещё раз посмотрите на файл Release в репозитории, то можете заметить там строчку:
Здесь прописаны архитектуры пакетов, которые хранятся в репозитории. Прописывая источник репозитория, например в конфиге /etc/apt/sources.list вы можете указать определённую архитектуру, чтобы предотвратить скачивание и установку пакетов для других архитектур.
Это делается таким способом:
Как подключить стандартные репозитории Debian 10 Buster
В каталоге настроек менеджера пакетов apt (по умолчанию /etc/apt) отредактируем файл sources.list с основной информацией о базовых репозиториях Debian 10 Buster
# nano /etc/apt/sources.list
# From https://wiki.debian.org/SourcesList
deb http:deb.debian.orgdebian buster main contrib non-free
deb-src http:deb.debian.orgdebian buster main contrib non-free
deb http:deb.debian.orgdebian buster-updates main contrib non-free
deb-src http:deb.debian.orgdebian buster-updates main contrib non-free
deb http:security.debian.org busterupdates main contrib non-free
deb-src http:security.debian.org busterupdates main contrib non-free
После этого выполняем обновление кэша менеджера пакетов:
# apt-get update
Теперь можно будет устанавливать пакеты из подключённых репозиториев.
Если есть необходимость установки более свежих версий ПО, чем те, что доступны в стандартном репозитории, то дополнительно можно подключить репозиторий backports, добавив его в конфигурационный файл sources.list
При этом установка любого пакета по умолчанию выполняется из стандартного репозитория, даже если в стандартном репозитории версия пакета ниже, чем в репозитории бакпортов. Поэтому для установки пакета именно из репозитория бакпортов требуется явное указание этого репозитория:
# apt install -t buster-backports squid
Проверено на следующих конфигурациях:
Автор первичной редакции:Алексей Максимов
Время публикации: 18.06.2019 14:48
Итог
Мы узнали что такое репозитории. Узнали что есть официальные репозитории для системы и они прописываются в конфиг /etc/apt/sources.list. А также есть сторонние репозитории и для них лучше создавать свои конфиги в каталоге /etc/apt/sources.list.d/.
Научились добавлять сторонний репозиторий на примере nginx. Узнали про приоритеты репозиториев и открытые ключи. А также узнали что такое целевой выпуск.

Conclusion
We have seen how we can manipulate sources.list file and package repositories in Debian Linux. This is the updated article for the new Debian release — Debian 11 Bullseye. You should use this info safely because of manipulating sources.list file can make your system full of unstable packages and you may end up encountering many unresolved dependencies or even breaking your system.
Заключение
В этой статье мы показали как добавить репозиторий пакетов в Debian. Спасибо за чтение, пожалуйста если вы нашли не точность дайте нам знать разделе комментариев.

