使用负 pin 优先级阻止 Snapd 安装不再有效

使用负 pin 优先级阻止 Snapd 安装不再有效

我之前曾卸载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.04pin 优先级为-10,而不是1,并且被标记为(phased 80%)

答案1

这不是一个干净的解决方案;更多的是一种解决方法。

n=jammy*

-n 表示代号(这里是 jammy)

这些表达式的规则是,它们可以出现在任何可以出现字符串(此处为 jammy)的地方。这意味着 snapd 是在 jammy 还是 jammy-updates 或 jammy-security 中提供的并不重要。另请查看apt_preferences 命令我在那里找到了它。

相关内容