5

我已按照 Poltergeist github 页面上的说明进行操作,但我不断收到错误消息,指出我的 PhantomJS 版本错误。

具体来说,它说:

Could not find an executable 'phantomjs' that matched the requirements '~> 1.8', '>= 1.8.1'. Found versions were {"/home/marko/projects/irs_machine/bin/phantomjs"=>"50"}.

现在,我已经下载了 phantomjs v1.8.1(以及更高版本的 v1.9.2),所以版本是正确的。这真的让我发疯。我使用 Ubuntu 13.04,但我怀疑这就是原因。

谷歌搜索错误返回没有任何用处。

有任何想法吗?

4

4 回答 4

9

我已经解决了!

我发现非常奇怪的是错误报告 phantomjs 版本为“50”,这是不可能的。

我已经将错误跟踪到“cliver”gem,这是一个检测已安装程序版本的gem。它通过正则表达式将所需的版本字符串与

 {command} -v

现在,当我运行 phantomjs -vi get "1.8.1" 时,发生了什么?仔细观察,“1.8.1”并不是我回来的全部内容!准确地说,我得到了这个:

 phantomjs -v
 Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated.
 1.8.1

我有一个 fontconf 错误,果然,它包含的第一个数字是“50”。Cliver 与标准输出匹配,因此无法获得正确的版本,因为系统正在写出错误。

一旦我将 50-user.conf 重新配置为不使用第 9 行,错误就消失了,并且 poltergeist 开始按预期工作。

于 2013-09-16T11:08:59.563 回答
2

就我而言,apt-get用于安装 PhantomJS 是在安装旧版本的 PhantomJS。我必须手动安装 PhantomJS,方法是下载 tarball、解压缩并在以下位置创建指向可执行文件的链接/bin

  1. 如果您还没有,请删除您已安装的过时版本的 PhantomJS。
    使用apt-get,我的命令是sudo apt-get remove phantomjs
  2. 从http://phantomjs.org/download.html下载压缩包。
    (例如,您可以使用wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2从命令行下载 x86 版本的 PhantomJS 1.9.7 到当前工作目录。)
  3. 在您的主目录中解压缩 tarball。
    根据https://askubuntu.com/a/25962/168631,命令是tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2,取决于您下载的版本。
  4. phantomjs在您的/bin.
    • 按照这些说明,我跑了:
      1. sudo ln -s <snip>/<unpacked_tarball>/bin/phantomjs /usr/local/share/phantomjs
      2. sudo ln -s <snip>/<unpacked_tarball>/bin/phantomjs /usr/local/bin/phantomjs
      3. sudo ln -s <snip>/<unpacked_tarball>/bin/phantomjs /usr/bin/phantomjs
于 2014-06-27T23:08:23.160 回答
1

我也遇到了同样的问题,并通过使用 phantomjs gem 解决了它,它将根据您正在工作的平台安装 phantomjs。

首先删除平台特定的 phantomjs ,所以如果你使用的是 ubuntu sudo apt-get --purge remove phantomjs sudo rm /usr/bin/phantomjs sudo ln -s /node_modules/phantomjs/lib/phantom/bin/phantomjs /usr/bin/phantomjs

于 2015-10-25T07:31:04.663 回答
0

尝试将 phantomjs 移动到您的/bin目录。

于 2013-09-16T10:43:05.963 回答