Установка Backports в Debian

При общении с энтузиастами Linux и беглом чтении сообщений на форумах может сложиться представление, будто Debian – стагнирующая ОС. Релизы выходят раз в несколько лет и успевают “протухнуть” всего лишь за месяц-другой.

Да, включённые в релиз пакеты не всегда bleeding-edge версий. Но, одна политика Debian чрезвычайно проста: релиз должен быть стабилен. И с точки зрения набора возможностей (в свежих версиях иногда убирают фичи). И с точки зрения аспекта безопасности (выпущенная только-только версия пакета может содержать угрозы и требует “триа́жа”, т.е. проверки временем).

С одной стороны, это позволяет получить очень устойчивую систему, которая будет действительно долго и стабильно работать без дополнительных усилий по обновлению софта. С другой, иногда требуется свежая версия по объективным причинам. Как наглядный пример, можно привести ситуацию с новым железом, требующим свежее ядро с обновлённым драйвером для этого устройства.

Поскольку такие объективные причины время от времени появляются, а использование пакетов из сторонних репозиториев может “сломать” систему (в некоторых случаях), то появился концепт “backport” для стабильного релиза.

Backport – это пакет с более свежей версией софта, но собранный специально для работы с библиотеками стабильной версии. Т.е. пакет, “портированный” в “старую версию” Debian. Этакий промежуточный вариант между использованием последней стабильной версии и тестовой (возможно нестабильной). Обновлять ОС полностью при использовании backport не требуется, затрагиваются только отдельные пакеты.

Если Вам ещё не приходилось устанавливать backport, то вот один пример, как это сделать. Добавляем новый репозиторий с помощью apt-add-repository:

$ sudo apt-add-repository --enable-source \
  "deb http://deb.debian.org/debian bookworm-backports main non-free-firmware"

Информация о пакетах в добавленном репозитории загрузится автоматически. Теперь устанавливаем нужные пакеты. Для обновления ядра Linux, соответствующих headers, libc-dev, cpupower и пары firmware, команда может выглядеть следующим образом:

$ sudo apt install \
  linux-image-amd64/bookworm-backports \
  linux-headers-amd64/bookworm-backports \
  linux-libc-dev/bookworm-backports \
  linux-cpupower/bookworm-backports \
  firmware-amd-graphics/bookworm-backports \
  firmware-realtek/bookworm-backports

Заметьте, нужно явно указать репозиторий bookworm-backports через слэш после имени пакета, т.к. репозиторий с backports никогда не используется первым при поиске кандидата на установку. А если для пакета требуются зависимости точных версий, которые есть только в bookworm-backports, нужно явно их перечислить. Иначе Вы получите ошибку, что пакет требуемой версии не был найден в bookworm репозитории.

Чтобы вернуться (в случае проблем) на стабильную версию, можно сделать downgrade путём установки из репозитория stable-security:

$ sudo apt install \
  linux-image-amd64/stable-security \
  linux-headers-amd64/stable-security \
  linux-libc-dev/stable-security \
  linux-cpupower/stable-security \
  firmware-amd-graphics/stable-security \
  firmware-realtek/stable-security

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

О преимуществах обновления на backport можно также почитать в заметке про плюсы обновления Linux 6.5 на Debian 12.

Журнал изменений

4 октября 2024 г.: добавил libc-dev, cpupower и firmware пакеты в пример.

Если Вы хотите обсудить содержание заметки, задать вопросы или предложить изменения, то со мной можно связаться в Telegram