为什么APT要升级已经是最新的软件包?

adr*_*nos 3 debian dpkg apt upgrade

软件包版本1.14.2-2+deb10u1已安装,并且1.14.2-2+deb10u1是撰写本文时存储库中的最新版本。

dpkg -l | grep nginx-extras ii  nginx-extras
Run Code Online (Sandbox Code Playgroud)

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])
Run Code Online (Sandbox Code Playgroud)

然而,APT 想要升级。为什么?如何让APT知道系统已经升级了?

为什么不直接升级呢?我不想使用 APT 进行不必要的升级。因为这会覆盖我的本地更改。

背景:

我手动下载 ( apt source nginx-extras)、编译、进行本地更改、使用 dpkg 和 apt 安装软件包。包源文件夹 debian/changelog 与Web 存储库存储库变更日志文件匹配。

Ste*_*itt 5

发生这种情况是因为您安装的软件包与存储库中可用的软件包不匹配,即使它们具有相同的版本。(AB发现,这似乎基于软件包的安装大小:如果安装的软件包\xe2\x80\x99s 版本与存储库中提供的版本相同,但其安装大小不同,则apt需要替换具有存储库中可用版本的软件包。安装的大小在Packages远程软件包和/var/lib/dpkg/status已安装的软件包中列出。当然,所有这些也服从于软件包引脚优先级。)

\n\n

每当您在本地构建软件包时,尤其是对其进行更改时,\xe2\x80\x99 最好更新更改日志,就像进行非维护者上传一样:

\n\n
dch -n "Summary of your changes"\ndch -r ignored\n
Run Code Online (Sandbox Code Playgroud)\n\n

这样apt\xe2\x80\x99就不会尝试用存储库中的包替换你的包,直到后者更新为止。

\n