我添加了KeePassXC 的官方 PPA并且 apt 知道最新版本,但它没有安装它:
$ apt list -a keepassxc
Listing... Done
keepassxc/bionic,now 2.6.1-1ppa1~bionic1 amd64
keepassxc/bionic 2.5.3-1ppa1~bionic1 amd64 [installed]
keepassxc/bionic 2.3.1+dfsg.1-1 amd64
手动选择版本 2.6.1 可以,但 apt 稍后会将其降级到 2.5.3。
为什么会这样,我怎样才能让它使用最新版本?
该问题可以通过执行来诊断
apt-cache policy keepassxc
:2.5.3 包具有非标准优先级 1001,高于其他包使用的默认 500。
为什么会这样?
2.3.1 软件包来自 Ubuntu 存储库。
2.5.3 由 Pop!_OS 存储库提供。
2.6.1 是官方的 KeePassXC PPA。
Pop!_OS 基于 Ubuntu,但提供了自己的一些软件包的修改版本。这是通过在 apt 中赋予其存储库更高的优先级来实现的。Apt 将首先查看包优先级,如果有多个具有更高优先级的包,则仅考虑版本。否则,无论版本如何,都会安装具有最高优先级的软件包。
Pop 的
keepassxc
包从其存储库继承优先级 1001。它高于500
Ubuntu 和 KeePassXC PPA 软件包的默认值,因此尽管不是最新版本,但仍安装了 2.5.3。通过将 KeePassXC 的 PPA 优先级设置为高于 1001 可以解决此问题。
/etc/apt/preferences.d/keepassxc-official-ppa
使用以下内容以 root 身份创建文件:然后
sudo apt update
和sudo apt upgrade keepassxc
。应安装最新版本并apt-cache policy keepassxc
反映更改:(
LP-PPA-phoerious-keepassxc
首选项文件中的字符串来自apt-cache policy
输出。)