
Certbotтребует, чтобы я активировал stretch-backports для его установки. Так что после того, как
$ cat /etc/apt/sources.list.d/backports.list
deb http://ftp.debian.org/debian stretch-backports main
и делая sudo apt update
я получаю
$ apt list --upgradable
Listing... Done
libpam-systemd/stretch-backports 237-3~bpo9+1 amd64 [upgradable from: 232-25+deb9u3]
libsystemd0/stretch-backports 237-3~bpo9+1 amd64 [upgradable from: 232-25+deb9u3]
libudev1/stretch-backports 237-3~bpo9+1 amd64 [upgradable from: 232-25+deb9u3]
systemd/stretch-backports 237-3~bpo9+1 amd64 [upgradable from: 232-25+deb9u3]
systemd-sysv/stretch-backports 237-3~bpo9+1 amd64 [upgradable from: 232-25+deb9u3]
udev/stretch-backports 237-3~bpo9+1 amd64 [upgradable from: 232-25+deb9u3]
$ sudo apt upgrade
[...]
The following packages have been kept back:
systemd-sysv
The following packages will be upgraded:
libpam-systemd libsystemd0 libudev1 systemd udev
5 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 4,795 kB of archives.
After this operation, 2,540 kB of additional disk space will be used.
Do you want to continue? [Y/n]
Похоже, что он действительно продолжит обновлять упомянутые пакеты.
Однако, изэтот ответ, Я цитирую:
Пакеты из бэкпортов никогда не являются допустимыми кандидатами на установку для обновления из основных репозиториев, только для обновления с предыдущей версии бэкпортированного пакета; поэтому, хотя
apt list --upgradable
он и указан как обновляемый пакет,apt upgrade
он не будет рассматриваться для обновления. Вы можете увидеть это в выводеapt-cache policy
Итак, проверка
$ apt policy systemd
systemd:
Installed: 232-25+deb9u3
Candidate: 237-3~bpo9+1
Version table:
237-3~bpo9+1 100
100 http://ftp.debian.org/debian stretch-backports/main amd64 Packages
*** 232-25+deb9u3 100
100 /var/lib/dpkg/status
232-25+deb9u2 500
500 http://ftp.debian.org/debian stretch/main amd64 Packages
похоже, что версия backports подходит для обновления.
Как включить обновление с бэкпортов только для тех пакетов, которые изначально были установлены с бэкпортов (т.е. через apt -t stretch-backports
)?
ИЗМЕНИТЬ: Мойsources.list
$ cat /etc/apt/sources.list
deb http://ftp.debian.org/debian stretch main
deb-src http://ftp.debian.org/debian stretch main
deb http://security.debian.org/debian-security stretch/updates main contrib
deb-src http://security.debian.org/debian-security stretch/updates main contrib
решение1
Вам не нужно ничего включать, чтобы обеспечить документированное поведение для backports, но вам нужно убедиться, что система знает, откуда берутся ваши установленные пакеты. В вашем случае у вас есть версия from systemd
, stretch/updates
но ваши источники не ссылаются на нее, поэтому apt
выдает установленной версии systemd
оценку 100, которая меньше или равна оценке backports (см. ваш apt policy
вывод).
Чтобы исправить это, убедитесь, что у вас /etc/apt/sources.list
есть записи для stretch-updates
, что-то вроде
deb http://ftp.debian.org/debian stretch-updates main
deb-src http://ftp.debian.org/debian stretch-updates main
Затем вы должны увидеть apt policy systemd
следующие результаты:
systemd:
Installed: 232-25+deb9u3
Candidate: 232-25+deb9u3
Version table:
237-3~bpo9+1 100
100 http://ftp.debian.org/debian stretch-backports/main amd64 Packages
*** 232-25+deb9u3 500
500 http://ftp.debian.org/debian stretch-updates/main amd64 Packages
100 /usr/var/lib/dpkg/status
232-25+deb9u2 500
500 http://ftp.debian.org/debian stretch/main amd64 Packages