我之前曾卸载snapd
并安装了非 snap 版 Firefox,来自ppa:mozillateam/ppa
。我试图保持这种状态,但我的 FF 刚刚自动更新为 snap 版本,snapd 又自动安装了。我该如何防止这种情况发生?
我有一个包含以下内容的文件以防止snapd
安装,位于/etc/apt/preferences.d/nosnap.pref
:
Package: snapd
Pin: release a=*
Pin-Priority: -10
我还有/etc/apt/preferences.d/mozillateam.pref
以下内容:
Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
这似乎不再起作用了。我的非 snap 版 Firefox 刚刚自动更新为 snap 版本,snapd
自动安装。
有趣的是,sudo apt autoremove snap
将 Firefox 回滚到非 snap 版本,并且sudo apt update
说没有什么可更新的。
另一方面,sudo apt install snapd --dry-run
似乎不再被上述配置文件阻止。
不确定是否重要,但apt-cache policy -q | grep snap
会打印以下内容:
snapd -> 2.55.5+22.04 с приоритетом 1
snapd -> 2.55.3+22.04 с приоритетом -10
根据要求,输出apt-cache policy snapd
:
apt-cache policy snapd
snapd:
Installed: (none)
Candidate: 2.55.5+22.04
Version table:
2.55.5+22.04 1 (phased 70%)
500 http://ru.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
2.55.3+22.04 -10
500 http://ru.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
100 /var/lib/dpkg/status
有趣的是,我在另一台机器上尝试过(该机器没有收到此自动更新),并且2.55.5+22.04
pin 优先级为-10
,而不是1
,并且被标记为(phased 80%)
。
答案1
这不是一个干净的解决方案;更多的是一种解决方法。
n=jammy*
-n 表示代号(这里是 jammy)
这些表达式的规则是,它们可以出现在任何可以出现字符串(此处为 jammy)的地方。这意味着 snapd 是在 jammy 还是 jammy-updates 或 jammy-security 中提供的并不重要。另请查看apt_preferences 命令我在那里找到了它。