Включение репозиториев Contrib и Non-Free в Debian 13, 12, 11: подробное руководство

Сразу после установки Debian в системе включён только компонент main. Это означает, что при попытке установить драйверы NVIDIA, прошивки для Wi-Fi или обновления микрокода процессора вы можете получить ошибку «пакет не найден». Эти пакеты находятся в компонентах contrib, non-free и (начиная с Debian 12) non-free-firmware, которые размещены на тех же официальных зеркалах, но отключены по умолчанию.

💡 В этом руководстве мы включим contrib, non-free и non-free-firmware репозитории двумя способами: через ручное редактирование файла (с nano) и автоматической командой (с tee). Оба способа дают одинаковый результат — теперь APT будет видеть пакеты драйверов, прошивок и проприетарного ПО.

В этой статье вы узнаете:

  • Что такое компоненты main, contrib, non-free и non-free-firmware
  • Как включить все репозитории через ручное редактирование (nano)
  • Как включить все репозитории одной командой (tee)
  • Как проверить, что репозитории включены
  • Как решить типичные проблемы (дублирование, ошибки 443, missing non-free-firmware)
  • Как откатить изменения (вернуться к только main)

Для кого: пользователи, которым нужны драйверы NVIDIA, прошивки Wi-Fi, микрокод процессора, проприетарные драйверы, пользователи Debian 11, 12 и 13.


Оглавление

1. 🔧 Предварительные требования

Перед включением репозиториев убедитесь, что:

  • У вас установлена Debian 11, 12 или 13 (любая редакция)
  • Подключение к интернету стабильно
  • У вас есть доступ к терминалу

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

✅ Если выводит root — всё в порядке, можете продолжать.

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo

1.1 Обновление системы

Перед изменением конфигурации всегда обновляйте список пакетов:

sudo apt update

Что делает: Обновляет список доступных пакетов из уже включённых репозиториев.

1.2 Определение версии Debian

grep VERSION_CODENAME /etc/os-release

Ожидаемый вывод: VERSION_CODENAME=trixie (Debian 13), bookworm (Debian 12) или bullseye (Debian 11).

Зачем: Версия Debian определяет, какие компоненты доступны. Например, non-free-firmware есть только в Debian 12 и 13.

1.3 Проверка текущего формата репозиториев

ls /etc/apt/sources.list.d/debian.sources 2>/dev/null && echo "DEB822 формат" || echo "Legacy формат или файл отсутствует"

Что делает: Проверяет, использует ли ваша система современный DEB822 формат (.sources) или старый sources.list. В этом руководстве мы будем использовать современный формат, который работает на всех версиях Debian.


2. 📚 Понимание компонентов Debian (для новичков)

Debian делит своё программное обеспечение на несколько компонентов (архивов) в зависимости от лицензии. Представьте это как разные полки в магазине:

КомпонентЧто это простыми словамиПримеры пакетовДоступен в Debian 11Доступен в Debian 12/13
mainСвободное ПО с
открытым кодом.
Это основная
полка Debian.
Ядро Linux, bash,
Firefox, LibreOffice
contribСвободное ПО,
которое зависит
от чего-то
проприетарного.
Например,
бесплатная
программа,
которой нужен
платный драйвер.
VirtualBox
non-freeПроприетарное
ПО, которое
нельзя свободно
распространять.
Драйверы
NVIDIA, unrar
(распаковка RAR)
non-free-firmwareТолько прошивки
для
оборудования
(не полные
программы).
Отдельный
компонент с
Debian 12, чтобы
их можно было
включать без
всего остального
проприетарного
ПО.
Прошивки для
Wi-Fi, микрокод
CPU, прошивки
для видеокарт

💡 Рекомендация для новичков: Включайте только те компоненты, которые вам действительно нужны.

  • Если у вас есть видеокарта NVIDIA — нужно включить non-free
  • Если у вас не работает Wi-Fi или Bluetooth — возможно, нужно non-free-firmware (Debian 12/13)
  • Если вы не знаете, что вам нужно — включите всё (contrib, non-free, non-free-firmware для Debian 12/13). Это безопасно, так как пакеты не установятся автоматически, просто станут видны.

3. 🛠️ Способ 1: Ручное включение через nano (для новичков)

Этот метод подходит, если вы хотите увидеть, как устроен файл конфигурации, и понять, что именно вы меняете. Мы будем использовать редактор nano — он простой и понятный.

3.1 Открытие файла конфигурации

sudo nano /etc/apt/sources.list.d/debian.sources

Что делает: Открывает (или создаёт) файл репозиториев в формате DEB822. sudo нужен, потому что файл находится в защищённой системной директории.

Что вы увидите: Если файл уже существует, вы увидите его содержимое. Если нет — откроется пустой файл.

3.2 Вставка конфигурации для вашей версии Debian

Важно: Скопируйте весь блок для вашей версии Debian. В блоке может быть несколько секций (основной репозиторий, репозиторий безопасности, backports).

Debian 13 (Trixie)

Скопируйте этот блок полностью:

Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://security.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Debian 12 (Bookworm)

Скопируйте этот блок полностью:

Types: deb
URIs: https://deb.debian.org/debian
Suites: bookworm bookworm-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://security.debian.org/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://deb.debian.org/debian
Suites: bookworm-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Debian 11 (Bullseye)

Скопируйте этот блок полностью (обратите внимание: нет non-free-firmware и нет -backports):

Types: deb
URIs: https://deb.debian.org/debian
Suites: bullseye bullseye-updates
Components: main contrib non-free
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://security.debian.org/debian-security
Suites: bullseye-security
Components: main contrib non-free
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Как вставить в nano:

  • Кликните правой кнопкой мыши в окне терминала (или нажмите Ctrl+Shift+V)
  • Если текст вставился криво — не страшно, главное, чтобы строки были на месте

3.3 Сохранение файла

  1. Нажмите Ctrl+O (сохранить файл)
  2. Нажмите Enter (подтвердить имя файла)
  3. Нажмите Ctrl+X (выйти из nano)

3.4 Отключение старых репозиториев в sources.list (если есть)

На старых системах может быть файл /etc/apt/sources.list, который тоже содержит репозитории Debian. Если его не отключить, появятся предупреждения о дублировании.

sudo nano /etc/apt/sources.list

Что делать: Найдите строки, содержащие deb.debian.org или security.debian.org, и добавьте символ # в самое начало каждой такой строки.

Пример:

# Было:
deb https://deb.debian.org/debian bookworm main

# Стало:
# deb https://deb.debian.org/debian bookworm main

Строки с другими репозиториями (Docker, Google, VS Code) не трогайте. Сохраните файл (Ctrl+O, Enter, Ctrl+X).

3.5 Обновление списка пакетов

sudo apt update

Что делает: Заставляет APT перечитать конфигурацию репозиториев. Если вы всё сделали правильно, в выводе появятся строки с contrib, non-free и non-free-firmware.


4. 🚀 Способ 2: Автоматическое включение через tee (для продвинутых)

Этот метод быстрее — одна команда создаёт весь файл конфигурации. Подходит, если вы уверены в своих действиях или автоматизируете установку.

4.1 Создание резервной копии (на всякий случай)

sudo cp /etc/apt/sources.list.d/debian.sources /etc/apt/sources.list.d/debian.sources.bak 2>/dev/null; sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2>/dev/null

Что делает: Создаёт копии файлов debian.sources и sources.list с расширением .bak. Если что-то пойдёт не так, вы сможете восстановить настройки.

4.2 Выполнение команды для вашей версии Debian

Debian 13 (Trixie):

sudo tee /etc/apt/sources.list.d/debian.sources <<'EOF'
Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://security.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF

Debian 12 (Bookworm):

sudo tee /etc/apt/sources.list.d/debian.sources <<'EOF'
Types: deb
URIs: https://deb.debian.org/debian
Suites: bookworm bookworm-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://security.debian.org/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://deb.debian.org/debian
Suites: bookworm-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF

Debian 11 (Bullseye):

sudo tee /etc/apt/sources.list.d/debian.sources <<'EOF'
Types: deb
URIs: https://deb.debian.org/debian
Suites: bullseye bullseye-updates
Components: main contrib non-free
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://security.debian.org/debian-security
Suites: bullseye-security
Components: main contrib non-free
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
EOF

4.3 Отключение старых репозиториев

sudo sed -i 's/^deb /#deb /' /etc/apt/sources.list 2>/dev/null

Что делает: Автоматически добавляет # в начало каждой строки, начинающейся с deb, в файле sources.list.

4.4 Обновление списка пакетов

sudo apt update

5. 🔍 Проверка включения репозиториев

После выполнения любого из способов нужно убедиться, что всё работает.

5.1 Проверка компонентов в файле

grep -E "Components:.*(contrib|non-free)" /etc/apt/sources.list.d/debian.sources

Что делает: Ищет в файле строки, содержащие Components: и хотя бы один из компонентов contrib или non-free.

Ожидаемый вывод (Debian 12/13):

Components: main contrib non-free non-free-firmware
Components: main contrib non-free non-free-firmware
Components: main contrib non-free non-free-firmware

Ожидаемый вывод (Debian 11):

Components: main contrib non-free
Components: main contrib non-free

5.2 Проверка доступности пакета из non-free

Проверим, что APT теперь видит пакеты драйверов NVIDIA:

apt search nvidia-driver 2>/dev/null | head -5

Ожидаемый вывод: Должны появиться строки с nvidia-driver, nvidia-driver-bin и т.д. Если раньше их не было, значит, репозитории включились правильно.

5.3 Проверка доступности пакета из non-free-firmware (только Debian 12/13)

apt-cache policy firmware-iwlwifi

Ожидаемый вывод:

firmware-iwlwifi:
  Installed: (none)
  Candidate: 20250410-2
  Version table:
     20250410-2 500
        500 https://deb.debian.org/debian trixie/non-free-firmware amd64 Packages

Важно: В выводе должна быть строка non-free-firmware (не просто non-free).

5.4 Проверка доступности пакета из non-free для Debian 11

apt-cache policy firmware-iwlwifi

Ожидаемый вывод:

firmware-iwlwifi:
  Installed: (none)
  Candidate: 20210315-3
  Version table:
     20210315-3 500
        500 https://deb.debian.org/debian bullseye/non-free amd64 Packages

Важно: На Debian 11 пакет находится в non-free, а не в non-free-firmware.


6. ⚠️ Решение типичных проблем (для новичков)

6.1 Ошибка 443 (HTTPS) после изменения конфигурации

Симптом: При выполнении sudo apt update появляются ошибки соединения на порту 443, например:

Err:1 https://deb.debian.org/debian trixie InRelease
  Could not connect to deb.debian.org:443

Причина: Отсутствует пакет ca-certificates, который нужен для проверки SSL-сертификатов. Часто это бывает в минимальных установках Debian.

Решение:

sudo apt install ca-certificates -y
sudo apt update

Что делает: Устанавливает пакет с корневыми сертификатами, после чего HTTPS-соединения начинают работать.


6.2 Ошибка: «doesn’t have the component non-free-firmware» на Debian 11

Симптом: При sudo apt update появляется предупреждение:

W: Skipping acquire of configured file 'non-free-firmware/binary-amd64/Packages' as repository 'https://deb.debian.org/debian bullseye InRelease' doesn't have the component 'non-free-firmware'

Причина: Вы скопировали конфигурацию для Debian 12/13 на Debian 11. В Debian 11 нет компонента non-free-firmware.

Решение: Отредактируйте файл и удалите non-free-firmware из всех строк Components:.

sudo nano /etc/apt/sources.list.d/debian.sources

Найдите строки, содержащие:

Components: main contrib non-free non-free-firmware

Замените их на:

Components: main contrib non-free

Также удалите весь блок -backports (строки с trixie-backports или bookworm-backports), если он есть. Сохраните файл и выполните:

sudo apt update

6.3 Ошибка дублирования репозиториев

Симптом: При sudo apt update появляются предупреждения:

W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list:1 and /etc/apt/sources.list.d/debian.sources:1

Причина: Один и тот же репозиторий Debian прописан в двух файлах: в старом sources.list и в новом debian.sources.

Решение: Закомментируйте строки Debian в старом файле sources.list.

sudo nano /etc/apt/sources.list

Добавьте символ # в начало каждой строки, содержащей deb.debian.org или security.debian.org. Строки с другими репозиториями (Docker, Google, VS Code) не трогайте. Сохраните файл и выполните:

sudo apt update

Альтернативное решение (автоматическое):

sudo sed -i 's/^deb /#deb /' /etc/apt/sources.list
sudo apt update

6.4 Ошибка NO_PUBKEY

Симптом: sudo apt update сообщает об отсутствии публичного ключа:

W: GPG error: https://deb.debian.org/debian trixie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1122334455667788

Причина: Повреждён или отсутствует пакет с ключами Debian.

Решение: Переустановите пакет debian-archive-keyring:

sudo apt install --reinstall debian-archive-keyring
sudo apt update

6.5 Пакет из non-free всё ещё не виден

Симптом: Вы выполнили все шаги, но apt search nvidia-driver не показывает драйверы NVIDIA.

Решение 1: Проверьте, что компоненты правильно указаны в файле:

cat /etc/apt/sources.list.d/debian.sources | grep "Components:"

Если non-free отсутствует в выводе — добавьте его вручную через редактор.

Решение 2: Обновите список пакетов ещё раз и проверьте политику пакета:

sudo apt update
apt-cache policy nvidia-driver

Если в выводе Candidate: (none), значит APT всё ещё не видит пакет. Проверьте подключение к интернету и правильность URL в файле.


6.6 Ошибка 404 при обновлении

Симптом: apt update выдаёт ошибку 404 для некоторых URL.

Причина: Указана неверная версия Debian в строке Suites: (например, trixie вместо bookworm).

Решение: Проверьте вашу версию Debian:

grep VERSION_CODENAME /etc/os-release

Убедитесь, что в файле debian.sources указана та же кодовая кодовое имя в строках Suites:.


7. 🔄 Откат изменений (возврат к только main)

Если вы решили отключить contrib, non-free и non-free-firmware, вот как это сделать.

7.1 Ручное редактирование

sudo nano /etc/apt/sources.list.d/debian.sources

В каждой секции найдите строку, начинающуюся с Components:, и замените её содержимое на:

Components: main

Пример (Debian 12/13):

  • Было: Components: main contrib non-free non-free-firmware
  • Стало: Components: main

Пример (Debian 11):

  • Было: Components: main contrib non-free
  • Стало: Components: main

Сохраните файл (Ctrl+O, Enter, Ctrl+X) и выполните:

sudo apt update

7.2 Автоматическая замена (одной командой)

Если вы не хотите редактировать файл вручную, выполните:

sudo sed -i 's/Components:.*/Components: main/' /etc/apt/sources.list.d/debian.sources
sudo apt update

Что делает команда: Находит все строки, начинающиеся с Components:, и заменяет их содержимое на Components: main.

7.3 Проверка после отката

grep "Components:" /etc/apt/sources.list.d/debian.sources

Ожидаемый вывод: Для каждой секции должно быть Components: main.

⚠️ Внимание: Уже установленные пакеты из contrib или non-free останутся в системе, но перестанут получать обновления. Если вы хотите их удалить, сделайте это до отключения репозиториев.


8. 📝 Чек-лист: всё готово к работе

Пройдитесь по пунктам, чтобы убедиться, что репозитории включены правильно:

  • [ ] Файл /etc/apt/sources.list.d/debian.sources содержит строки с contrib и non-freenon-free-firmware для Debian 12/13)
  • [ ] Старый файл /etc/apt/sources.list больше не содержит активных строк Debian (они закомментированы)
  • [ ] Команда sudo apt update завершается без ошибок (предупреждения о дублировании допустимы, но лучше их убрать)
  • [ ] apt search nvidia-driver показывает пакеты драйверов NVIDIA
  • [ ] apt-cache policy firmware-iwlwifi показывает версию пакета (для проверки non-free-firmware на Debian 12/13)
  • [ ] Вы можете установить тестовый пакет из non-free, например: sudo apt install unrar -y

Заключение

Вы успешно включили репозитории contrib, non-free и (для Debian 12/13) non-free-firmware в Debian. Теперь APT видит драйверы NVIDIA, прошивки для Wi-Fi, микрокод процессора и другие проприетарные пакеты. Это необходимо для установки многих драйверов и программ.

Что дальше:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *