Сразу после установки 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 Сохранение файла
- Нажмите
Ctrl+O(сохранить файл) - Нажмите
Enter(подтвердить имя файла) - Нажмите
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-free(иnon-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, микрокод процессора и другие проприетарные пакеты. Это необходимо для установки многих драйверов и программ.
Что дальше:
- Установите драйверы NVIDIA для видеокарты
- Установите микрокод процессора (
intel-microcodeилиamd64-microcode) для безопасности и стабильности - Установите Steam для игр
- Установите unrar для распаковки RAR-архивов
- Установите драйверы для Wi-Fi если они не работают из коробки