Подробный гайд: deb путь_к_репозиторию 1.7_x86-64 main contrib non-free для APT-репозитория
Строка deb <путь_к_репозиторию> 1.7_x86-64 main contrib non-free предназначена для добавления стороннего APT-репозитория в Debian/Ubuntu. Ниже приведён подробный, актуальный (2024–2026) гайд с учётом современных требований безопасности.
Что означает эта строка?
| Часть | Значение |
|---|---|
deb |
Указывает, что репозиторий содержит бинарные .deb пакеты |
<путь_к_репозиторию> |
URL репозитория (например, https://repo.example.com/apt) |
1.7_x86-64 |
Suite/Codename дистрибутива в репозитории. Необычный формат, часто используется вендорами для привязки к версии ПО и архитектуре |
main contrib non-free |
Компоненты: официальные свободные пакеты, свободные с несвободными зависимостями, несвободные/проприетарные пакеты |
Пошаговая инструкция
Шаг 1: Подготовка
1. Убедитесь, что система работает на amd64 (x86-64):
dpkg --print-architecture
2. Обновите систему и установите утилиты:
sudo apt update && sudo apt install -y curl gnupg apt-transport-https
Шаг 2: Создание файла репозитория
Не рекомендуется править /etc/apt/sources.list напрямую.
Используйте отдельный файл:
sudo nano /etc/apt/sources.list.d/custom-repo.list
Вставьте строку (замените <путь_к_репозиторию> на реальный URL):
deb <путь_к_репозиторию> 1.7_x86-64 main contrib non-free
Сохраните (Ctrl+O, Enter, Ctrl+X).
Рекомендация:
Если репозиторий поддерживает только amd64, добавьте ограничение архитектуры:
deb [arch=amd64] <путь_к_репозиторию> 1.7_x86-64 main contrib non-free
Шаг 3: Добавление GPG-ключа (обязательно)
Современный APT требует явного указания ключа через signed-by. Без этого apt update выдаст ошибку NOSPLIT или BADSIG.
1. Скачайте и конвертируйте ключ поставщика:
curl -fsSL <URL_GPG_КЛЮЧА> | sudo gpg --dearmor -o /usr/share/keyrings/custom-repo.gpg
(Замените <URL_GPG_КЛЮЧА> на ссылку, указанную в документации репозитория)
2. Измените строку в custom-repo.list, добавив путь к ключу:
deb [signed-by=/usr/share/keyrings/custom-repo.gpg] <путь_к_репозиторию> 1.7_x86-64 main contrib non-free
3. Установите правильные права:
sudo chmod 644 /usr/share/keyrings/custom-repo.gpg
sudo chmod 644 /etc/apt/sources.list.d/custom-repo.list
Шаг 4: Обновление списков пакетов
sudo apt update
Если всё прошло успешно, вы увидите строки вроде:
Получено:1 <путь_к_репозиторию> 1.7_x86-64/main amd64 Packages [...]
Шаг 5: Установка пакетов
Теперь можно устанавливать пакеты из нового репозитория:
sudo apt install <имя_пакета>
Для просмотра доступных пакетов:
apt search <часть_имени>
Как отключить или удалить репозиторий
1. Временно отключить (закомментировать):
sudo sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/custom-repo.list
sudo apt update
2. Удалить полностью:
sudo rm /etc/apt/sources.list.d/custom-repo.list
sudo rm /usr/share/keyrings/custom-repo.gpg
sudo apt update
Важные замечания и устранение неполадок
| Проблема | Решение |
|---|---|
NO_PUBKEY или BADSIG |
Убедитесь, что signed-by указан правильно, а ключ скачан с официального сайта. Не используйте /etc/apt/trusted.gpg.d/ (deprecated). |
404 Not Found при apt update |
Проверьте URL, наличие директорий dists/1.7_x86-64/, корректность компонентов. Возможно, вендор сменил suite на stable или focal и т.п. |
Skipping acquire of configured file 'non-free/binary-amd64/Packages' |
Репозиторий не содержит non-free. Удалите его из строки. |
| Конфликты версий | Используйте apt-cache policy <пакет> и sudo apt install <пакет>=<версия> или apt-mark hold <пакет> |
Безопасность non-free |
Пакеты из non-free не обновляются сообществом Debian/Ubuntu, могут содержать проприетарный код. Проверяйте источник. |
Пример полной команды (для наглядности)
# 1. Создаём файл
echo "deb [signed-by=/usr/share/keyrings/example.gpg arch=amd64] https://repo.example.com/apt 1.7_x86-64 main contrib non-free" | sudo tee /etc/apt/sources.list.d/example.list
# 2. Добавляем ключ
curl -fsSL https://repo.example.com/apt/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/example.gpg
# 3. Обновляем
sudo apt update