Debian

為什麼 APT 想要升級已經是最新的包?

  • April 20, 2020

軟體包版本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/proxy server(擴展版)

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),編譯,進行本地更改,安裝包

$$ s $$使用 dpkg 和 apt。軟體包源文件夾 debian/changelog 與web 儲存庫儲存庫 changelog 文件匹配。

發生這種情況是因為您安裝的軟體包與儲存庫中可用的軟體包不匹配,即使它們具有相同的版本。(正如AB發現的那樣,這似乎是基於包的安裝大小:如果安裝包的版本與儲存庫中可用的版本相同,但其安裝大小不同,apt將希望用可用版本替換包來自儲存庫。安裝的大小列在Packages遠端包和/var/lib/dpkg/status已安裝的包中。當然,所有這些也取決於包管腳的優先級。)

每當您在本地建構包時,尤其是在對其進行更改時,最好像進行非維護者上傳一樣更新更改日誌:

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

這樣apt就不會嘗試用儲存庫中的包替換你的包,直到後者被更新。

引用自:https://unix.stackexchange.com/questions/581291