如何更改x-www-browser的优先级?


26

我使用的是15.04 64位Lubuntu,我从他们的网站上下载了chrome,因为它有时会很有用,但是我想将firefox保留为默认浏览器,尽管将其设置为默认浏览器,但我仍然无法运行执行x-www-browser。然后,我使用update-alternatives脚本手动将firefox设置为默认值,但令我感到奇怪的是,为什么chrome将自身设置为200的优先级。我不认为chrome本身具有很高的优先级,那么我将如何更改优先级?

这就是我现在拥有的内容,当我明确将它作为默认设置放在firefox接口本身中时,firefox确实成为了我的默认应用程序,但实际上并没有。

  Selection    Path                           Priority   Status
------------------------------------------------------------
  0            /usr/bin/google-chrome-stable   200       auto mode
  1            /usr/bin/chromium-browser       40        manual mode
* 2            /usr/bin/firefox                40        manual mode
  3            /usr/bin/google-chrome-stable   200       manual mode

7
+1代表“我不认为铬的含量如此之高” ;-)
mirabilos 2015年

Answers:


28

您可以使用以下方法更改优先级:

sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser google-chrome-stable <priority_as_integer>

例:

之前

$ sudo update-alternatives --config x-www-browser 
There are 2 choices for the alternative x-www-browser (providing /usr/bin/x-www-browser).

  Selection    Path                         Priority   Status
------------------------------------------------------------
* 0            /usr/bin/google-chrome-beta   150       auto mode
  1            /usr/bin/firefox              150       manual mode
  2            /usr/bin/google-chrome-beta   150       manual mode

后:

$ sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/google-chrome-beta 50
update-alternatives: using /usr/bin/firefox to provide /usr/bin/x-www-browser (x-www-browser) in auto mode

$ sudo update-alternatives --config x-www-browser                                                        
There are 2 choices for the alternative x-www-browser (providing /usr/bin/x-www-browser).

  Selection    Path                         Priority   Status
------------------------------------------------------------
* 0            /usr/bin/firefox              150       auto mode
  1            /usr/bin/firefox              150       manual mode
  2            /usr/bin/google-chrome-beta   50        manual mode

2
这不是您的错,因为您的答案是正确的,但是这种“解决方案”完全是疯狂的。肯定有人必须发明比这更好的东西。
蒂诺2015年

@Tino:争辩。
Marco Sulla

3
只有最明显的事情:1)sudo:所以它是针对每个系统的,但应该针对每个用户甚至更好的针对每个shell。2)绝对路径:因此,它需要深入了解系统,并且只需一点​​点错字即可将其完全拧紧。3)复杂而难以理解的命令行。4)意外的API:Prio 1通常是顶级Prio。我并不是说编号错误,但是请不要将其称为“优先级”。5)这是一个隐藏的功能,等等,等等。在Linux / Debian中,这样的重要功能必须始终针对那些不了解和不在乎的普通人而设计。
蒂诺

@Tino大多数“普通人”甚至都不会遇到x-www-browser,大多数GUI应用程序将尊重您的DE的文件关联,而大多数命令行实用程序将遵循BROWSER环境变量。
乔纳森·鲍德温

1
@JonathanBaldwin普通人既不知道x-www-browser也没有人知道EnvironmentVariable手段。不过,他们受影响x-www-browser的幕后。与大众汽车排放丑闻相比:柴油卡车司机心烦意乱,受到影响。但是他们仍然对AdBlue或其运作方式一无所知。但更重要的是:他们从不想要知道,也不需要他们知道!普通人不是火箭科学工程师,即使大多数火箭科学工程师也不需要了解自己汽车中的AdBlue。
蒂诺,2016年

4

简而言之:编辑/ var / lib / dpkg / alternatives / x-www-browser并在其中更改优先级


细节

一个最简单且必须的答案是编辑在以下位置找到的管理更新替代文件 /var/lib/dpkg/alternatives

所以编辑x-www-browser文件

sudo gedit /var/lib/dpkg/alternatives/x-www-browser

输出将如下所示:

auto
/usr/bin/x-www-browser

/usr/bin/firefox
40
/usr/bin/google-chrome-stable
200
/usr/bin/vivaldi-stable
200

现在,通过所需的任何内容轻松更改chrome(200)的优先级,然后保存。(我改为50)

检查新设置

update-alternatives --query x-www-browser 
Link: x-www-browser
Status: auto
Best: /usr/bin/vivaldi-stable
Value: /usr/bin/google-chrome-stable

Alternative: /usr/bin/firefox
Priority: 40

Alternative: /usr/bin/google-chrome-stable
Priority: 50

Alternative: /usr/bin/vivaldi-stable
Priority: 200

3
尽管这确实解决了我的问题,但我发现AB的解决方案更加简洁,因为他可以通过update-alternatives界面更改值。我喜欢这种方式,因为除了像您说的那样更改文件之外,您永远都不知道它还能做什么。从技术上讲,他的解决方案更容易,因为他仅使用1条命令。您可以使用1命令打开文件,但此后必须进行编辑和保存,同时update-alternatives --install为您完成此操作。
彼得·雷夫斯

0

我已经qutebrowser安装到~/.local/bin这是对我的$PATH。我已经将完整路径放置到可执行文件中,这意味着我必须运行

sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser $HOME/.local/bin/qutebrowser 200

而不是qutebrowser仅用作倒数第二个参数(因为update-alternatives抱怨路径不是绝对的),然后

update-alternatives --config x-www-browser

编辑:无论如何,我在debian buster / sid上。EDIT2:为什么我必须指定qutebrowser的完整路径的原因。


您能否指定答案与接受的答案有何不同?
Marc Vanhoomissen

1
您是否要问为什么必须对qutebrowser使用完整路径?
查尔斯·格林
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.