14.04.5 LTS。
我的 Travis 构建需要 Firefox >=48:https://travis-ci.org/umts/incidents/builds/240872628
所以我sudo apt-get update
和sudo apt-get install firefox
,这意味着:
Unpacking firefox (53.0.3+build1-0ubuntu0.14.04.2) ...
ETC。
但随后我的自动化测试失败了,显示的消息与我使用内置版本的 Firefox (38.4.0esr) 时的消息完全相同。因此,为了进行健全性检查,我添加了firefox -v
后安装,返回:
(process:5877): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Mozilla Firefox 38.4.0
也许那个失败的 C 断言在这里是有意义的?但从表面上看,apt 正在安装软件包的一个版本,但使用该软件包却给了我一个更旧的版本,尽管 apt 没有返回任何错误消息。
在这种情况下,如何成功安装和使用 Firefox >=48?
答案1
在 Travis CI 上,Firefox 已预安装在/usr/bin/X11/firefox
,这似乎是 geckodriver 正在使用的版本,无论我是否曾经update-alternatives
指定我想要哪一个。
因此我开始构建:
whereis firefox | tr ' ' '\n' | grep bin | xargs sudo rm
删除所有现有版本的 Firefox。然后sudo apt-get update
,sudo apt-get install firefox
就像我的问题一样。这有效。
感谢 Ravexina 提供的调试帮助!
答案2
看来你的 Ubuntu 上安装了两个版本的 Firefox。
使用包管理器安装的版本位于:
/usr/bin/firefox
您的系统正在使用的另一个(我猜您以某种方式手动安装了它)位于:
/usr/local/bin/firefox
使用:
sudo update-alternatives --config x-www-browser
将设置/usr/bin/firefox
为您的默认浏览器。您也可以使用绝对路径运行它/usr/bin/firefox
,例如查看 Firefox 的版本:
/usr/bin/firefox -v