extrepo — это официальный инструмент Debian для управления сторонними APT-репозиториями. Он автоматически добавляет GPG-ключи и создаёт файлы репозиториев в современном формате DEB822, избавляя вас от ручного скачивания ключей и настройки источников.
В этом руководстве я покажу, как использовать extrepo для поиска, добавления, отключения и обновления сторонних репозиториев на Debian 13, 12 и 11.
⚠️ Важные особенности:
- extrepo работает только с репозиториями, внесёнными в официальный каталог Debian (поддерживаются популярные: Brave, Google Chrome, Microsoft Edge, Opera, Slack и др.)
- Если репозитория нет в каталоге, используйте ручную настройку (DEB822)
- На Debian 13 может возникнуть ошибка SHA-1 для старых ключей (см. проблему 8.3)
Предварительные требования
Перед использованием extrepo убедитесь, что:
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Установка extrepo
Для Debian 13 и Debian 12
sudo apt update
sudo apt install -y extrepo extrepo-offline-data
Что делает: Устанавливает extrepo и пакет с офлайн-каталогом репозиториев.
Для Debian 11 (Bullseye)
sudo apt update
sudo apt install -y extrepo
Что делает: Устанавливает extrepo (пакет extrepo-offline-data недоступен для Debian 11).
Проверка установки
dpkg -l extrepo | grep '^ii'
✅ Ожидаемый вывод: ii extrepo 0.14 all External repository manager
Поиск репозиториев в каталоге extrepo
Список всех доступных репозиториев
extrepo search
Поиск конкретного репозитория
extrepo search '^brave_release$'
Что делает: Ищет репозиторий с точным именем brave_release.
✅ Ожидаемый вывод: Информация о репозитории Brave Browser.
Поиск по ключевому слову
extrepo search "chrome|edge|brave"
Что делает: Ищет репозитории, содержащие любое из слов.
Офлайн-поиск (только Debian 13 и 12)
extrepo --offlinedata search '^brave_release$'
Что делает: Использует локальный каталог (не скачивает из сети).
Добавление репозитория через extrepo
Шаг 1: Включите репозиторий
sudo extrepo enable brave_release
Что делает: Создаёт файл /etc/apt/sources.list.d/extrepo_brave_release.sources и скачивает GPG-ключ.
Шаг 2: Проверьте созданный файл
cat /etc/apt/sources.list.d/extrepo_brave_release.sources
✅ Ожидаемый вывод:
Architectures: amd64
Types: deb
Suites: stable
Components: main
Uris: https://brave-browser-apt-release.s3.brave.com
Signed-By: /var/lib/extrepo/keys/brave_release.asc
Шаг 3: Обновите список пакетов
sudo apt update
Шаг 4: Проверьте, что пакет из репозитория доступен
apt-cache policy brave-browser
✅ Ожидаемый вывод: Должна быть строка с URL репозитория.
Включение политик contrib и non-free
Некоторые репозитории (Google Chrome, Microsoft Edge, Slack) помечены как non-free. По умолчанию extrepo разрешает только main.
Шаг 1: Отредактируйте конфигурационный файл
sudo nano /etc/extrepo/config.yaml
Шаг 2: Раскомментируйте строки
Найдите блок:
enabled_policies:
- main
# - contrib
# - non-free
Измените на:
enabled_policies:
- main
- contrib
- non-free
Быстрый способ через sed:
sudo sed -i 's/^# - contrib/- contrib/' /etc/extrepo/config.yaml
sudo sed -i 's/^# - non-free/- non-free/' /etc/extrepo/config.yaml
Шаг 3: Проверьте изменения
cat /etc/extrepo/config.yaml
Управление репозиториями
Отключение репозитория
sudo extrepo disable brave_release
Что делает: Добавляет строку Enabled: no в файл репозитория (APT игнорирует его).
Повторное включение
sudo extrepo enable brave_release
Обновление репозитория (перезапись ключа и источника)
sudo extrepo update brave_release
Что делает: Перезаписывает файл .sources и ключ из актуальных данных каталога.
Обновление всех репозиториев extrepo (Debian 13)
sudo extrepo update
⚠️ Для Debian 12 и 11 нужно указывать имя репозитория.
Решение типичных проблем
8.1 Ошибка: Policy error при включении репозитория
Симптом: None of the license inclusion policies in google_chrome were enabled
Причина: Репозиторий помечен как non-free, а политика не включена.
Пошаговое решение:
Включите contrib и non-free в /etc/extrepo/config.yaml (см. раздел «Включение политик»).
8.2 Ошибка: Repository name not found
Симптом: Repository 'some-name' does not exist
Причина: Репозиторий отсутствует в каталоге extrepo.
Пошаговое решение:
Шаг 1: Уточните точное имя через поиск:
extrepo search '^keyword'
Шаг 2: Если репозиторий не найден — используйте ручную настройку DEB822.
8.3 Ошибка: SHA-1 key error на Debian 13
Симптом: При sudo apt update ошибка:
Policy rejected non-revocation signature (PositiveCertification) requiring second pre-image resistance
SHA1 is not considered secure since 2026-02-01T00:00:00Z
Причина: В каталоге extrepo для некоторых репозиториев (например, Microsoft Edge) всё ещё используется ключ с SHA-1.
Пошаговое решение:
Шаг 1: Скачайте актуальный ключ вручную:
sudo wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /var/lib/extrepo/keys/edge.asc > /dev/null
Шаг 2: Обновите список пакетов:
sudo apt update
⚠️ Важно: Команда sudo extrepo update edge восстановит старый ключ из каталога. Повторяйте ручную замену при необходимости или переходите на ручную настройку репозитория.
8.4 Ошибка: Duplicate source / Signed-By conflict
Симптом: Conflicting values set for option Signed-By
Причина: Установщик программы создал свой .list-файл, который конфликтует с файлом от extrepo.
Пошаговое решение:
Шаг 1: Найдите конфликтующие файлы:
grep -R "dl.google.com/linux/chrome/deb" /etc/apt/sources.list.d/
Шаг 2: Удалите дублирующийся файл (созданный установщиком), оставив только файл от extrepo:
sudo rm -f /etc/apt/sources.list.d/google-chrome*.list
sudo apt update
8.5 Пакет не появляется после добавления репозитория
Симптом: Репозиторий включён, но apt search не находит пакет.
Причина: Имя пакета не совпадает с именем репозитория.
Пошаговое решение:
Шаг 1: Поищите возможные имена пакетов:
apt search keyword
Шаг 2: Проверьте, что репозиторий вообще виден:
apt-cache policy | grep -A 5 "URIs:"
Шаг 3: Убедитесь, что sudo apt update прошёл без ошибок.
Использование Tor и зеркал (Debian 13)
Использование Tor
sudo apt install -y apt-transport-tor
sudo extrepo --tor auto enable brave_release
Режимы --tor:
onion— использовать.onionURL (если есть)tunnel— добавитьtor+перед URLauto—.onionесли есть, иначеtunnelif-onion—.onionесли есть, иначе обычный URL
Использование зеркала
sudo extrepo --mirror https://mirror.example.com/brave enable brave_release
Удаление extrepo и репозиториев
Удаление одного репозитория
sudo extrepo disable brave_release
sudo rm -f /etc/apt/sources.list.d/extrepo_brave_release.sources
sudo rm -f /var/lib/extrepo/keys/brave_release.asc
sudo apt update
Полное удаление extrepo
sudo rm -f /etc/apt/sources.list.d/extrepo_*.sources
sudo apt update
sudo apt remove --purge extrepo extrepo-offline-data
sudo rm -rf /var/lib/extrepo/
Чек-лист: что проверить после настройки
- [ ] extrepo установлен:
dpkg -l extrepo→ii - [ ] Политики contrib и non-free включены (если нужны)
- [ ] Репозиторий добавлен:
ls /etc/apt/sources.list.d/extrepo_*.sources - [ ]
apt updateпроходит без ошибок - [ ] Пакет из репозитория виден:
apt-cache policy имя-пакета→ URL репозитория - [ ] Для Debian 13: нет SHA-1 ошибок при
apt update
Часто задаваемые вопросы (FAQ)
Вопрос: Чем extrepo отличается от ручного добавления репозитория?
Ответ: extrepo автоматически скачивает ключи и создаёт DEB822-файлы, но работает только с репозиториями из официального каталога. Ручное добавление даёт полный контроль, но требует больше действий.
Вопрос: Как узнать, какие репозитории поддерживает extrepo?
Ответ: extrepo search выводит полный список. На Debian 13 их сотни.
Вопрос: Безопасно ли использовать extrepo?
Ответ: Да, extrepo — официальный инструмент Debian. Ключи репозиторий берутся из проверенного каталога.
Вопрос: Почему на Debian 13 ошибка SHA-1?
Ответ: Debian 13 ужесточил требования к GPG-ключам. Некоторые старые ключи в каталоге extrepo не прошли проверку. Исправляется ручной заменой ключа (см. проблему 8.3).
Вопрос: Можно ли использовать extrepo для своих собственных репозиториев?
Ответ: Нет, только для репозиториев, внесённых в официальный каталог Debian.
Заключение
Вы научились управлять сторонними APT-репозиториями в Debian с помощью extrepo. Этот инструмент упрощает добавление и обслуживание репозиториев, но требует внимания к политикам (contrib, non-free) и иногда к ручной замене ключей (Debian 13).
Что дальше?
- Установите Brave Browser через extrepo
- Установите Google Chrome через extrepo
- Изучите ручное управление APT-репозиториями (DEB822)