(这是根据评论中的建议对原始问题进行的重写)
我正在运行 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 赋予了snap
snap-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
如果您没有将存储库添加到配置中,那么您提到的固定就毫无价值,因为无人值守升级工具不知道该包,也不知道它的固定。
这就是为什么firefox
ppa 中的 -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 中拉出