Debian backports что это

Обновлено: 06.07.2024

So using old version of software packages is good in a way. If you’re looking for bleeding edge software packages in Debian, then one alternative is Debian testing releases. Debian testing has more up to date software packages. But don’t expect it to be like Arch Linux.

Let’s say, you need the stability of Debian stable and still need some specific up to date software packages which is available in the Debian testing releases. Well, that’s when Debian Backports package repository comes in. According to the official website of Debian, the Debian Backports packages are packages from the Debian testing release (or the next version of Debian) adjusted and recompiled for using in Debian stable releases.

The official website of Debian also states that, if you use Debian Backports packages, then upgrade to the next Debian release (when it’s released) will not cause problems at all as the packages are already available there. There is a little bit problem with Debian Backports packages. The packages are not extensively tested as in Debian stable packages. Again, Debian Backports packages may conflict with your Debian stable packages. So you should be careful when using Debian Backports packages.

Debian recommends you use only the packages you need from the Debian Backports package repository. You should not use all the available Backports packages on Debian stable.

In this article, I will show you how to use Debian Backports package repository on your Debian stable release. I will be using Debian 9 Stretch (which is the latest version of Debian stable release at the time of this writing) in this article. So Let’s get started.

Debian Backports package repository contains a lot of Debian packages. You can search to find out whether the package of software version you’re looking for is available in the Debian Backports package repository from your web browser.

Then, type in the package name and click on search. If the package is available in the backports package repository, it should show up.


Adding Debian Backports Package Repository to Debian 9 Stretch:

In this section, I will show you how to add the Debian Backports package repository on your Debian 9 Stretch stable release. First, open up a Terminal and run the following command:


The Debian backports package repository should be added to your Debian 9 Stretch machine.


Now, update the APT package repository cache with the following command:


As you can see, the APT package repository cache is updated and it included the Debian backports package repository as well.


Adding Debian Backports Package Repository to Debian 8 Jessie:

In this section, I will show you how to add the Debian Backports package repository on your Debian 8 Jessie stable release.

First, open up a Terminal and run the following command to add the Debian Jessie Backports package repository to your Debian 8 Jessie machine:


Debian Backports package repository should be added to your Debian 8 Jessie machine.


Now update the APT package repository cache of your Debian 8 Jessie machine with the following command:

As you can see, the APT package repository cache is updated and it also includes the Debian Backports package repository.

Installing Packages from Debian Backports Package Repository:

By default, all backports package repositories are disabled on Debian. If you want to install a package from Debian backports package repository, you have to tell the APT package manager that you really do want to install a package from Debian backports package repository specifically. That’s a great safeguard.

To search for a package (let’s say owncloud) in the Debian backports package repository, run the following command:
On Debian 9 Stretch:

On Debian 8 Jessie:

As you can see, the backports repository packages are listed.


To install a package (let’s say owncloud-client) from Debian backports package repository, run the following command:

On Debian 9 Stretch:

$ sudo apt -t stretch-backports install owncloud-client

On Debian 8 Jessie:

Now, press y and then press <Enter>.


As you can see, the packages are being downloaded from the Debian Backports package repository.


As you can see, the owncloud-client is installed from the Debian backports package repository.


As you can see, the ownCloud GUI client I just installed from the Debian backports package repository runs just fine.


Removing Packages from Debian Backports Package Repository:

If you want to remove a package that you installed from the Debian backports package repository, then this section is for you. To remove a package (let’s say owncloud-client) that you installed from the Debian backports package repository, run the following command:

On Debian 9 Stretch:

On Debian 8 Jessie:

Now, press y and then press <Enter>.


The owncloud-client package should be removed.


Removing Debian Backports Package Repository:

If you’ve followed this article to add Debian backports package repository on your Debian 9 Stretch or Debian 8 Jessie machine, then you can remove it very easily with the following command:


Debian Backports package repository should be removed.


Now, update the APT package repository cache with the following command:

The APT package repository cache should be updated.

So, that’s how you use Debian backports package repository on Debian. Thanks for reading this article.

Backports в Debian - очень удобная штука, к которой часто в работе приходится обращаться. Данная статья имеет "заметочный" характер То есть публикуется как небольшая заметка для себя, чтобы каждый раз не лезть в поисковик. Ориентирована статья на Debian выпуска Squeeze и в будущих/предыдущих выпусках может быть неактуальна.

Что такое backports

backports - это официальный репозиторий (с Sept. 5th, 2010 ( с )) Debian, который содержит бинарные пакеты в большей части из тестовой ветки дистрибутива (testing) и в меньшей - из нестабильного (unstable). Особенность этих пакетов в том, что они содержать более новые версии пакетов по сравнению со стабильной веткой, при этом, эти новые пакеты при установке не тянут за собой библиотеки из тестовой и нестабильной ветки Debian. Стоит с осторожностью использовать пакеты из backports, т.к. они не так хорошо оттестированы как пакеты из стабильной ветки и предоставляются "как есть". Для выполнения нижеописанного действия необходимы права root.

Использование репозитория backports в Debian Squeeze

Т.к. я работаю на Linux только в консоли, то я не затрону добавление репозиториев через графические инструменты. Такие как Synaptic и т.п.

Итак, для добавления backports репозитория необходимо отредактировать файл /etc/apt/sources.list (например с помощью vim), добавив в файл следующую строку:

При добавлении репозитория, в конце строки содержатся 3 слова, которые указываются по желанию и имеют следующее значение:

  • main — пакеты подчиняются принципам свободного программного обеспечения. Они не зависят от других пакетов не входящих в «main» для компиляции или выполнения.
  • сontrib — пакеты так же подчиняются принципам свободного программного обеспечения, но для удовлетворения их зависимостей нужны пакеты, не входящие в «main».
  • non-free — содержит пакеты, которые противоречат принципам свободного программного обеспечения или которые обременены патентами или другими юридическими тонкостями, что делает их распространение проблематичным. (например проприетарные драйвера NVIDIA)

Установка пакетов из backports

Все пакеты из репозитория backports по-умолчанию имеют меньший приоритет, нежели пакеты из основного репозитория. Это означает, что если пакет содержится в основном репозитории, то без явного указания - он будет установлен из основного репозитория. Если пакета нет в основном репозитории, но есть в backports, то установиться он из backports. При обновлении пакетов в репзитории и если пакет установлен из backports . (. откуда обновляется)

Итак, для явного указания установки пакета из не основного репозитория, необходимо выполнить команду:

Использование стабильной (stable) ветки Debian гарантирует, что состав программного обеспечения будет стабилен, хорошо протестирован и количество ошибок сведено к минимуму. Но зачастую возникает ситуация, когда некоторый пакет имеется в ветках testing и unstable, однако его нет в stable, либо пакет есть в stable, но его версия сильно устарела. В этих случаях на помощь приходит концепция Debian backports (бэкпорты).

Debian backports - это ветка перекомпилированных пакетов из тестовой (testing) или нестабильной (unstable) веток. В основном пакеты портируются из тестовой (testing) ветки, но бывают случаи портирования и из нестабильной (unstable) ветки: как правило, связаны с безопасностью системы. Собираются пакеты таким образом, чтобы они были работоспособными в стабильной (stable) ветке без наличия в системе каких-либо новых библиотек.

Рекомендуется устанавливать из бэкпортов только те пакеты, которые необходимы, а не всю ветку целиком.

В настоящее время стабильной веткой является Debian Lenny 5.0, поэтому все ниже следующие примеры будет приведены относительно этой версии Debian.

Добавляем новый источник пакетов:

Обновляем список доступных пакетов:

Устанавливаем ключи для проверки пакетов, устанавливаемых из Debian backports:

Установка пакета из Debian backports с указанием ветки

Установка пакета, используя apt-get:

Установка пакета, используя aptitude:

Установка пакета из Debian backports, используя Apt-Pinning

Чтбоы каждый раз не указывать при уставновке пакета, из какой ветки его брать, можно использовать механиз закрепления / прикалывания (Apt-Pinning). С помощью этого механизма для каждого пакета можно указать ветку, откуда его необходимо устанавливать.

Для этого в файл '/etc/apt/preferences' необходимо добавить текст следующего формата:

Например, для пакета mutt будет:

Теперь установка пакеты будет выглядеть гораздо привычнее:

Если же необходимо, чтобы пакеты, установленные из бэкпортов (backports), обновлялись автоматически, необходимо вписать следующие строки в '/etc/apt/preferences':

Есть какой-нибудь связный туториал, как пользоваться backports ?


Почитай man apt_preferences, он длинный, но полезный.

Прочитал, пересказываю:
1) есть репозитории, их список задаётся в sources.list
2) в репозиториях есть файлы Packages и Release содержащие метаданные для каждого пакета в частности и репозитория в целом.
3) все метаданных со всех репозиториев перемешиваются и то, что получается (совокупность метаданных по всем версиям всех пакетов) - называется apt-cache (есть одноимённая утилита для просмотра). Это не то же самое, что дерево пакетов в gentoo + оверлеи, потому что в генте это не бинарные пакеты, а пакеты исходников.
4) у всех пакетов есть разные атрибуты в составе метаданных (в том числе - версия пакета)
5) по атрибутам вычисляется приоритет при помощи формул
6) пакет с наибольшим приоритетом устанавливается
7) формулы позволяют поднять приоритет пакетам на основе значений атрибутов пакетов
8) атрибуты бывают для - ограничения по лицензиям (Component), ограничения по поставщику (Origin), ограничения по платформе (Codename+Version), по отношению авторов пакета к качеству пакета (Suite)
9) -t это такой быстрый способ придать пакету приоритет 990, если пакет из правильной группы (тут мне не очень понятно, чем stable/unstable отличается от wheezy/wheezy-backports)

Т.е. можно предположить, что apt видит два пакета с одинаковыми версиями, но выбирает один из пакетов, потому что он свежее по дате и сообщает об этом. Но это неверное предположение, потому что с такой версией - один пакет. Ещё можно предположить, что на момент установки пакеты был поднят приоритет при помощи ключа -t, а потом в момент сравнения версий утилита apt-show-cache видит, что версия выше и сообщает об этом. Но это неверное предположение, потому что для двух других пакетов такого не происходит (хотя все они выше версиями, чем пакеты из wheezy).

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

проще всего - загнать pin-priority куда-нибудь в 500, и быть подвешеным на бэкпорты по всем вопросам.

Читайте также: