web-dev-qa-db-ja.com

なぜAPTはすでに最新のパッケージをアップグレードしたいのですか?

パッケージバージョン1.14.2-2+deb10u1がインストールされ、1.14.2-2+deb10u1は、執筆時点でのリポジトリ内の最新バージョンです。

dpkg -l | grep nginx-extras ii  nginx-extras

1.14.2-2 + deb10u1 AMD64 nginx Web /プロキシサーバー(拡張バージョン)

apt update

apt dist-upgrade --simulate

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  nginx-extras
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst nginx-extras [1.14.2-2+deb10u1] (1.14.2-2+deb10u1 Debian:10.3/stable, Debian-Security:10/stable [AMD64])
Conf nginx-extras (1.14.2-2+deb10u1 Debian:10.3/stable, Debian-Security:10/stable [AMD64])

それでも、APTはアップグレードしたいのですが、なぜですか?システムがすでにアップグレードされていることをAPTに知らせるにはどうすればよいですか?

なぜアップグレードをしないのですか? APTを使用して不必要にアップグレードしたくありません。それは私のローカルな変更を上書きするからです。

バックグラウンド:

手動でダウンロードしました(apt source nginx-extras)、コンパイル、ローカル変更を行い、dpkgとaptを使用してパッケージをインストールしました。パッケージソースフォルダdebian/changelogは Webリポジトリリポジトリ変更ログファイル と一致します。

1
adrelanos

これは、インストールされているパッケージが、同じバージョンであっても、リポジトリから入手できるパッケージと一致しないために発生します。 ( AB がわかっているように、これはパッケージのインストール済みサイズに基づいているようです。インストール済みパッケージのバージョンがリポジトリから入手できるバージョンと同じであるが、インストール済みサイズが異なる場合、aptは、パッケージをリポジトリから入手可能なバージョンに置き換えたいと考えています。インストールされているサイズは、リモートパッケージの場合はPackagesに、/var/lib/dpkg/statusインストールされたパッケージの場合。もちろん、これはすべて、パッケージピンの優先順位にも従順です。)

パッケージをローカルでビルドする場合、特にパッケージに変更を加える場合は、メンテナ以外のアップロードを行っているかのように変更ログを更新することをお勧めします。

dch -n "Summary of your changes"
dch -r ignored

そうすれば、aptは、リポジトリが更新されるまで、パッケージをリポジトリ内のパッケージに置き換えようとはしません。

3
Stephen Kitt