Debian Stretch quiere actualizar los paquetes principales después de habilitar los backports

Debian Stretch quiere actualizar los paquetes principales después de habilitar los backports

Certbotrequiere que active Stretch-Backports para su instalación. Entonces después de haber

$ cat /etc/apt/sources.list.d/backports.list
deb http://ftp.debian.org/debian stretch-backports main

y haciendo un sudo apt updateme sale

$ 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]

Realmente parece que continuaría actualizando los paquetes mencionados.

Sin embargo, desdeesta respuesta, Yo cito:

Los paquetes de backports nunca son candidatos de instalación válidos para una actualización desde los repositorios principales, solo para una actualización desde una versión anterior de un paquete backported; por lo que, si bien apt list --upgradablelo incluye como un paquete actualizable, apt upgradeno lo considerará para su actualización. Puedes ver esto en la salida deapt-cache policy

Entonces comprobando

$ 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

Parece que la versión de backports es válida para actualizar.

¿Cómo puedo habilitar la actualización desde backports solo para aquellos paquetes que se instalaron originalmente desde backports (es decir, mediante apt -t stretch-backports)?

EDITAR: misources.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

Respuesta1

No necesita habilitar nada para aplicar el comportamiento documentado para los backports, pero sí debe asegurarse de que el sistema sepa de dónde provienen los paquetes instalados. En su caso, tiene una versión de systemdfrom stretch/updates, pero sus fuentes no hacen referencia a eso, por lo que aptle otorga a la versión instalada systemduna puntuación de 100 que es menor o igual a la puntuación de los backports (consulte el apt policyresultado).

Para solucionar este problema, asegúrese de /etc/apt/sources.listtener entradas para stretch-updates, algo como

deb http://ftp.debian.org/debian stretch-updates main
deb-src http://ftp.debian.org/debian stretch-updates main

Entonces debería ver apt policy systemdlos siguientes resultados:

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

información relacionada