在更新替代方案中指定应用程序优先级的开发人员指南?

在更新替代方案中指定应用程序优先级的开发人员指南?

更新替代方案命令是指定在多个程序类别(Web 浏览器、编辑器等)中应将哪个备选程序设置为默认程序的常用方法。我认为用户更改默认程序的正常方法是运行类似命令,sudo update-alternatives --config gnome-www-browser尽管各种应用程序都依赖于其他指定默认浏览器的方式(例如,参见‘xdg-打开’)。

但我的问题集中在priority配置设置的含义和策略上。手册页解释道:

每个备选方案都有与之关联的优先级。当链接组处于自动模式时,组成员指向的备选方案将是优先级最高的备选方案。

它还指出提供相同文件的不同包需要协作。

我想了解这些优先事项是如何设计的:

  • 谁来决定优先事项?
  • 是否希望用户修改它们?
  • 在打包程序的时候,这些优先级应该如何设置?
  • 有没有一种简单的方法可以查看所有 Ubuntu 软件包对每个替代方案使用的优先级,作为当前实践的指南?我认为这对于官方软件包来说比对于附加存储库中的软件包更容易,但是给定一个存储库,我想它也可以进行查询。
  • 对于那些在官方存储库之外打包应用程序的组织,我们应该抱有什么期望?
  • 在安装时软件包是否应该询问用户是否想要更改默认值?

我读完后提出了这个问题Microsoft Edge 现已成为 Linux 上的默认浏览器,其中记录了 Microsoft 为基于 Debian 的系统打包的 Edge 作为浏览器的优先级为 200(带有注释)。在我的 Ubuntu 20.04 系统上,和 的# Good enough to be the default.其他优先级为:x-www-browsergnome-www-browser

$ update-alternatives --display x-www-browser
x-www-browser - auto mode
  link best version is /usr/bin/microsoft-edge-stable
  link currently points to /usr/bin/microsoft-edge-stable
  link x-www-browser is /usr/bin/x-www-browser
/usr/bin/firefox - priority 40
/usr/bin/google-chrome-beta - priority 150
/usr/bin/microsoft-edge-stable - priority 200

我安装了Ubuntu官方的基于chromium的浏览器chromium,现在正在使用snap。但它没有出现在备选方案中。

我还没有安装 google-chrome-stable。它们也使用优先级 200 吗?

当各个替代方案的优先级值相同时会发生什么情况?

非常感谢。

答案1

负责打包的个人或团队决定优先级。在 Ubuntu 中,每个 Ubuntu 风格的默认应用程序由负责该风格的团队共同设置。请注意,应用程序(但不是默认应用程序)也可以使用元包而不是 deb 控制字段来设置。唉。这是一个丰富的挂毯。

用户可以通过多种方式告诉系统他们想要将哪个应用程序作为默认应用程序,并且用户选择会覆盖打包程序优先级。应用程序安装期间不会询问此问题(也不应该询问!)如果他们的新应用程序因窃取默认设置而出现故障,他们可以将默认设置改回。

  • 用户最常抱怨的一点是系统有时会问他们认为不相关或根本不理解的问题。这就是为什么 Ubuntu 安装程序只询问最少的问题来安装一个正常工作的系统。

  • 未经询问而窃取默认值的应用程序可能被视为错误,并且当软件包到达 Ubuntu 时上游优先级可能会发生变化。

Edge 和 Chrome 的例子不是由 Debian 或 Ubuntu 分发的,你可以看到,打包者在竞争抢夺用户,而不是合作。他们是坏邻居,也许他们的软件可能会被排斥,直到他们守规矩。这并不奇怪:未能满足通过 Debian/Ubuntu 分发的最低开源标准的组织已经表明他们不合作。

最后,Snap 应用程序目前一般不兼容使用 Debian/Ubuntu update-alternatives 系统,无需费心。原因:update-alternatives 仅适用于 Debian,而 Snaps 是跨平台的。Snapd 是开源的,因此任何想要让它们协同工作的人都可以参与进来。

相关内容