KeePassXC 未在 Pop!_OS 18.04 上升级到最新版本

KeePassXC 未在 Pop!_OS 18.04 上升级到最新版本

我已经添加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。

为什么会这样?我怎样才能让它使用最新版本?

答案1

可以通过执行以下命令来诊断该问题apt-cache policy keepassxc

keepassxc:
  Installed: 2.5.3-1ppa1~bionic1
  Candidate: 2.5.3-1ppa1~bionic1
  Version table:
     2.6.1-1ppa1~bionic1 500
        500 http://ppa.launchpad.net/phoerious/keepassxc/ubuntu bionic/main amd64 Packages
 *** 2.5.3-1ppa1~bionic1 1001
       1001 http://ppa.launchpad.net/system76/pop/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status
     2.3.1+dfsg.1-1 500
        500 http://pl.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages

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。它高于500Ubuntu 和 KeePassXC PPA 软件包的默认优先级,因此尽管 2.5.3 不是最新版本,但仍会安装。

通过将 KeePassXC 的 PPA 优先级设置为高于 1001 可以修复此问题。/etc/apt/preferences.d/keepassxc-official-ppa以 root 身份创建文件,内容如下:

Package: *
Pin: release o=LP-PPA-phoerious-keepassxc
Pin-Priority: 1100

然后sudo apt updatesudo apt upgrade keepassxc。应该安装最新版本并apt-cache policy keepassxc反映更改:

keepassxc:
  Installed: 2.6.1-1ppa1~bionic1
  Candidate: 2.6.1-1ppa1~bionic1
  Version table:
 *** 2.6.1-1ppa1~bionic1 1100
       1100 http://ppa.launchpad.net/phoerious/keepassxc/ubuntu bionic/main amd64 Packages
        100 /var/lib/dpkg/status
     2.5.3-1ppa1~bionic1 1001
       1001 http://ppa.launchpad.net/system76/pop/ubuntu bionic/main amd64 Packages
     2.3.1+dfsg.1-1 500
        500 http://pl.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages

LP-PPA-phoerious-keepassxc首选项文件中的字符串来自apt-cache policy输出。)

相关内容