Установка ZFS на Debian Trixie — ошибка «релиз не найден»: причины и решение

Как установить 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, а при необходимости установите дополнительные зависимости для сборки модулей.

Ответить

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