Как установить ZFS на Debian Trixie: ошибка «E: The value ‘stable-backports’ is invalid for APT::Default-Release» и как её исправить
Коротко: при попытке установить ZFS на свежую систему Debian Trixie через backports можно получить ошибку E: The value 'stable-backports' is invalid for APT::Default-Release as such a release is not available in the sources
. Чаще всего проблема в несоответствии названия ветки (suite) и/или в отсутствии компонента contrib
в файле источников. Ниже — объяснение, проверки и пошаговые решения.
Проблема простыми словами
- Инструкции по установке ZFS предлагают брать пакет из backports — для этого часто используют опцию
-t stable-backports
. - В Debian Trixie название ветки backports —
trixie-backports
, а неstable-backports
. Если в ваших apt-источниках нет записи с таким именем, apt жалуется, что указанная «release» недоступна. - Кроме того, пакеты ZFS в репозитории находятся в секции
contrib
— если у вас в записях sources.list нет этой секции, пакет просто не будет виден.
Как диагностировать
- Проверьте последние строки файла источников:
tail -n 1 /etc/apt/sources.list
Вы должны увидеть нечто вроде:
deb http://deb.debian.org/debian trixie-backports main contrib non-free
- Посмотрите доступные кандидаты пакета:
apt policy zfsutils-linux
Если пакет не найден или у него нет «Candidate», значит apt не видит репозиторий/секцию с пакетом.
- Если apt ругается на
APT::Default-Release
, посмотрите, где задаётся эта опция:grep -R "Default-Release" /etc/apt || true
Возможно, где-то используется значение
stable-backports
, которое не соответствует вашим sources.
Решение — пошагово
Шаг 1. Убедиться, что есть запись backports
Если её нет, добавьте строку для Trixie backports в /etc/apt/sources.list:
deb http://deb.debian.org/debian trixie-backports main contrib non-free
Можно добавить вручную через редактор или командой:
sudo sh -c 'echo "deb http://deb.debian.org/debian trixie-backports main contrib non-free" >> /etc/apt/sources.list'
Шаг 2. Убедиться, что включена секция contrib
Если в записях есть только main
, пакеты из contrib
не будут доступны. Быстрое решение — добавить contrib
ко всем строкам deb ... main
(пример безопасной однострочной правки):
sudo sed -i -E 's/^(deb .* main)(?!.*\bcontrib\b)/\1 contrib/' /etc/apt/sources.list
Эта команда оставляет без изменений строки, где contrib
уже присутствует, и добавляет его к тем, где его нет.
Шаг 3. Обновить списки пакетов
sudo apt update
Шаг 4. Установить пакет
Рекомендуемый способ — явно указать целевую ветку backports:
sudo apt install -t trixie-backports zfsutils-linux
Если вы предпочитаете обычный install и пакет уже виден в репозитории, можно просто:
sudo apt install zfsutils-linux
Шаг 5. Проверить установку
sudo which zpool
# ожидаемый вывод:
# /usr/sbin/zpool
Альтернативные варианты и комментарии
Вариант 1 — исправить имя релиза в команде
- Если вы следовали инструкции с
-t stable-backports
, замените это на-t trixie-backports
. Такой простой вариант работает, когда в sources.list уже есть записьtrixie-backports
.
Вариант 2 — добавить/исправить запись в sources.list и включить contrib (рекомендуется)
- Добавление строки с
trixie-backports main contrib non-free
и обновление apt — самый надёжный путь. - Если у вас включён apt-планировщик или какие-то конфигурации Default-Release, убедитесь, что они не указывают на несуществующее имя (например,
stable-backports
), либо удалите/измените этот параметр.
Вариант 3 — проверить наличие пакета на packages.debian.org и использовать apt pinning
- Если пакет указан на сайте, но apt его не видит — это всегда проблемы с sources.list или с тем, что секция
contrib
/non-free
отключена. - Можно также явно скачать .deb с сайта, но это менее удобно и не рекомендуется для dkms-пакетов, требующих сборки модулей.
Полезные замечания
- ZFS в Debian часто поставляется как DKMS-пакет (zfs-dkms) и может требовать установленных заголовков ядра и инструментов сборки:
build-essential
,linux-headers-$(uname -r)
. - Если вы используете опцию
-t
, она временно поднимает приоритет пакетов из указанной ветки; это проще и безопаснее, чем менять глобальные опции APT. - Если где-то в конфигурации apt прописано
APT::Default-Release "stable-backports";
, удалите или поправьте это значение, потому что apt будет пытаться ориентироваться именно на него и выдавать ошибку, если такой release не найден в sources.
Вывод и рекомендации
- Основные причины ошибки: неверное имя ветки backports и/или отсутствие секции
contrib
в sources.list. - Рекомендуемый порядок действий: добавить в sources.list строку с
trixie-backports main contrib non-free
, выполнитьsudo apt update
, затем установить пакет командойsudo apt install -t trixie-backports zfsutils-linux
. - Проверьте также, нет ли у вас в конфигурации APT значения
Default-Release
, ссылающегося на несуществующий релиз — это тоже приводит к ошибке.
После этого ZFS должен установиться корректно — проверяйте наличие утилит zpool
и zfs
, а при необходимости установите дополнительные зависимости для сборки модулей.