尽管优先级较低,Mozillateam-Firefox 仍被 Snap-Firefox 悄然取代

尽管优先级较低,Mozillateam-Firefox 仍被 Snap-Firefox 悄然取代

(这是根据评论中的建议对原始问题进行的重写)

我正在运行 Ubuntu 22.04,并使用来自mozillateam ppa。我的设置将 ppa-firefox 设置为优先级 1001(如建议的那样这里) 和优先级为 500 (默认) 的 snap-firefox。今天,unattended-upgrades我默默地用 snap-firefox 替换了我的 ppa-firefox,但我不知道为什么。

我设法用一个简单的方法重新安装了 ppa-firefox,apt-get remove firefox; apt-get install firefox所以我怀疑优先级是有效的,但unattended-upgrade不知何故没有尊重它们。问题是为什么?

这是我的 ppa-firefox app-pin:

$ cat /etc/apt/preferences.d/mozilla-firefox
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001

apt-cache policy重新安装 Firefox 后,情况如下:

# apt-cache policy firefox
firefox:
  Installed: 120.0+build1-0ubuntu0.22.04.1~mt1
  Candidate: 120.0+build1-0ubuntu0.22.04.1~mt1
  Version table:
     1:1snap1-0ubuntu2 500
        500 http://de.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
 *** 120.0+build1-0ubuntu0.22.04.1~mt1 1001
       1001 https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy/main amd64 Packages
        100 /var/lib/dpkg/status

-logunattended-upgrades承认了这一点:

$ grep 'Unpacking firefox' /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
Unpacking firefox (1:1snap1-0ubuntu2) over (119.0.1+build1-0ubuntu0.22.04.1~mt1)

(也可以看看这里, 和这里

编辑:我已经将优先级 -1 赋予了snapsnap-firefox 和 Snap-firefox,正如上述问题的评论和答案中所建议的那样。所以,我想这个问题已经解决了,但为什么unattended-upgrades尽管 ppa-firefox 的优先级更高(1001 > 500),我还是要替换它,这个问题仍然悬而未决。

答案1

unattended-upgrades-tool 默认配置为仅从发行版的存储库升级软件包。您可以查看配置文件/etc/apt/apt.conf.d/50unattended-upgrades

除非您将第三方存储库中的包添加到配置文件中或添加包含它们的额外配置文件,否则 unattended-upgrades-tool 不知道它们。

例如firefox

echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox

如果您没有将存储库添加到配置中,那么您提到的固定就毫无价值,因为无人值守升级工具不知道该包,也不知道它的固定。

这就是为什么firefoxppa 中的 -package 升级为来自 distibution 存储库的过渡 Firefox 包,然后提取 snap 和所有必要的依赖项,如snapd。在这种情况下,这只是一个版本号的问题。

参考

答案2

固定的条目是不够的,您还需要从源中降低 DEB 包的优先级。

以下步骤应该可行:

  • 卸载通过 PPA 安装的 Firefox(如果仍然存在)。
  • 禁用 PPA
  • 从源中卸载 Firefox:
    • sudo apt remove firefox
    • sudo snap remove firefox
  • 创建类似的文件mozilla团队在下面/etc/apt/preferences.d
  • 在文件中添加以下内容:
Package: * 
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 100

Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001

Package: firefox*
Pin: release o=Ubuntu
Pin-Priority: -1
  • 再次添加 Mozilla PPA
  • sudo apt update
  • 安装 Firefox - 现在应该从 PPA 中拉出

相关内容