O Debian Stretch quer atualizar os pacotes principais depois de ativar os backports

1
O

Certbot exige que eu ative os backports estendidos para a sua instalação. Então, depois de ter

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

e fazendo um sudo apt update recebo

$ 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 continuaria atualizando os pacotes mencionados.

No entanto, de esta resposta , cito:

Packages from backports are never valid installation candidates for an upgrade from the main repositories, only for upgrade from a previous version of a backported package; so while apt list --upgradable lists it as an upgradable package, apt upgrade won’t consider it for upgrade. You can see this in the output of apt-cache policy

Então, verificando

$ 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 a versão de backports é válida para atualização.

Como posso ativar a atualização de backports apenas para os pacotes que foram instalados originalmente a partir de backports (por exemplo, apt -t stretch-backports )?

EDIT: Meu 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
    
por Pybe 01.06.2018 / 16:46

1 resposta

1

Você não precisa ativar nada para impor o comportamento documentado dos backports, mas é necessário garantir que o sistema saiba de onde vêm os pacotes instalados. No seu caso, você tem uma versão de systemd de stretch/updates , mas suas fontes não fazem referência a isso, então apt fornece a versão instalada de systemd uma pontuação de 100 que é menor ou igual à backports score (veja sua apt policy output).

Para corrigir isso, certifique-se de que seu /etc/apt/sources.list tenha 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

Você deve então ver apt policy systemd dar os seguintes 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
    
por 01.06.2018 / 16:49