xdg-open:即使在安装xdg-utils之后也没有可用的方法

时间:2014-07-10 17:53:30

标签: express gruntjs yeoman xdgutils

我正在使用generator-angular-fullstack。 在我的本地机器上工作正常,我运行

 grunt serve

它启动服务器,但在VPS中它失败

Warning: Command failed: xdg-open: no method available for opening 'http://localhost:9000'

我已经安装了xdg-utils

 $ sudo apt-get install xdg-utils
 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 xdg-utils is already the newest version.

任何人都能解释我的错误吗?

3 个答案:

答案 0 :(得分:5)

您是否尝试过配置xdg-open处理程序?

另外,您确定在服务器上安装了浏览器吗?使用apt-get install <browser>安装新浏览器会自动让xdg-open知道它。但是,您的设置可能没有这样做,具体取决于您的browser / xdg-utils的安装顺序。

为了让事情再次健全,需要运行xdg-settings

要将http://处理程序设置为首选浏览器(在无头服务器上可能是w3mlynxelinks),请执行以下操作: / p>

xdg-settings set default-web-browser w3m.desktop

要验证,您可以运行xdg-open https://stackoverflow.com/questions/24683221,您应该在w3m中看到答案。

如果您没有w3m可用,请使用sudo apt-get install w3m安装

您可能希望通过运行xdg-settings --list来查看其他可用处理程序,该Known properties: default-url-scheme-handler Default handler for URL scheme default-web-browser Default web browser 在我的系统上输出以下内容:

xdg-settings

修改 事实证明,一些旧系统(ubuntu 10.04)没有update-alternativesxdg-open命令应该自动配置 sudo update-alternatives --config www-browser 。像这样:

{{1}}

答案 1 :(得分:3)

我不是xdg-open的专家,但我会尝试一下。看起来您的包数据库存在问题。此外,显示gruntfile会使事情变得更容易。

以下是要遵循的步骤:

  1. 识别所有xdg-open

    $ type -a xdg-open

    xdg-open is /usr/bin/xdg-open

  2. 找出他们所属的软件包。

    $ dpkg -S /usr/bin/xdg-open

    xdg-utils: /usr/bin/xdg-open

  3. 您希望为dpkg -S .. 返回的每个匹配重复上述type -a,或使用此dpkg -S ..搜索。我会做每一个,一次一个。

    $ dpkg -S xdg-open

    xdg-utils: /usr/bin/xdg-open

    xdg-utils: /usr/share/man/man1/xdg-open.1.gz

  4. 重新安装xdg-utils。如果您想刷新此软件包的安装,请执行以下操作:

    $ sudo apt-get install --reinstall xdg-utils

  5. 我希望这有帮助!

答案 2 :(得分:1)

您使用的是图形环境吗?如果你正在使用&#34; raspberry&#34;而你是通过ssh连接的,你没有&#34; grunt&#34;配置为使用PhantomJS,&#34; Grunt&#34;无法执行任务。你必须强迫他继续服务 - 强制咕噜咕噜&#34;或者设置&#34; Gruntfile.js&#34;