web-dev-qa-db-ja.com

Debian Stretchは、バックポートを有効にした後、メインパッケージをアップグレードしたいと考えています

Certbot インストールのためにストレッチバックポートをアクティブにする必要があります。だから持った後

$ 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

バックポートバージョンはアップグレードに有効なようです。

バックポートから(つまり、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
Pybe

バックポートの文書化された動作を強制するために何も有効にする必要はありませんが、インストールされたパッケージがどこから来たのかをシステムが認識していることを確認する必要があります。あなたの場合、stretch/updatessystemdのバージョンがありますが、ソースはそれを参照していないため、aptはインストールされているsystemdのバージョンを示します。バックポートスコア以下の100のスコア(apt policy出力を参照)。

これを修正するには、/etc/apt/sources.liststretch-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
1
Stephen Kitt