【问题标题】:Best way to get spidermonkey js on Ubuntu?在 Ubuntu 上获取 spidermonkey js 的最佳方法?
【发布时间】:2011-10-03 04:03:38
【问题描述】:

我需要在我的工作机器上安装 Spidermonkey JS 引擎。我正在处理的项目有一个需要 Spidermonkey 或类似 js 二进制文件的 jslint 脚本。我尝试从源代码编译 Spidermonkey 并陷入依赖地狱。我尝试从 ubuntu 存储库安装 rhino 包,结果发现它很慢而且损坏了。今天早上,我按照这里的说明成功编译了谷歌的V8引擎并构建了v8jslint:

http://blog.stevenreid.co.uk/2011/06/27/jslint-command-line-tool-powered-by-v8/

v8jslint 有效,但一次只会 lint 一个文件。例如,

$ v8jslint foo/*.js

如果我在 foo 下有 a.js、b.js 和 c.js,v8jslint 只会 lint a.js。简单修复:我可以为此编写一个 bash 脚本。更大的问题是 v8jslint 与我们构建服务器上的 Spidermonkey jslint 不兼容。有没有人在最新版本的 Ubuntu 上成功构建 Spidermonkey,或者知道一个好的解决方法?

【问题讨论】:

  • 请问“v8jslint 与 Spidermonkey jslint 不兼容”是什么意思?
  • "v8jslint 与我们构建服务器上的 Spidermonkey jslint 不兼容。"也就是说,Spidermonkey 的 lint 将捕获 v8 遗漏的某些错误,反之亦然。所以我不知道如果我有v8并且服务器运行spidermonkey,构建是否会通过。

标签: javascript ubuntu spidermonkey


【解决方案1】:

您可以从源代码构建,但蜘蛛猴仍然可以在 ubuntu 上使用,它只是 renamed to "libmozjs"。安装“libmozjs-24-bin”,然后将其称为“js24”或将 /usr/bin/js24 符号链接到“js”,如下所示:

sudo apt-get install libmozjs-24-bin; sudo ln -sf /usr/bin/js24 /usr/bin/js

【讨论】:

  • 感谢您最近的回答。
  • sudo apt-get install libmozjs-24-bin; sudo ln -sf /usr/bin/js24 /usr/bin/js
  • @CameronTaggart 非常感谢,我在答案中添加了您的评论。
【解决方案2】:

安装包libmozjs-24-bin。它包含 Spidermonkey JavaScript shell 二进制文件/usr/bin/js24,您可以将其安装为命令js 的替代品。

sudo apt-get install libmozjs-24-bin
sudo update-alternatives --install /usr/bin/js js /usr/bin/js24 10

【讨论】:

    【解决方案3】:

    更新:

    看起来 spidermonkey-bin 不再可以通过启动板 ppa 获得

    当我尝试克隆它时,v8jslint 存储库已关闭。

    【讨论】:

      【解决方案4】:

      另外,(通过#2: spidermonkey-bin not availble in Ubuntu Lucid - Issues - hallettj/jslint.vim - GitHub),可以使用PPA for Launchpad Engineering : “Canonical Launchpad Engineering” team

      sudo add-apt-repository ppa:launchpad/ppa
      sudo apt-get update
      sudo apt-get install spidermonkey-bin
      apt-cache show spidermonkey-bin
      sudo apt-get install spidermonkey-bin # also installs extra: libmozjs2d
      
      # .. and then: 
      $ js --help
      JavaScript-C 1.8.0 pre-release 1 2007-10-03
      usage: js [-zKPswWxCij] [-t timeoutSeconds] [-c stackchunksize] [-o option] [-v version] [-f scriptfile] [-e script] [-S maxstacksize] [scriptfile] [scriptarg...]
      $ js
      js> var f = function(){ print("the answer is " + 42); }; 
      js> f();
      the answer is 42
      js> ^C
      $
      

      【讨论】:

      • 我没有看到 spidermonkey-bin 列在那里。他们把它丢了,还是我错过了什么?
      • @nealmcb 好像被删除了。
      【解决方案5】:

      修复它。您需要“autoconf2.13”包。使用 apt-get 安装它。转到 Mozilla 上的 SpiderMonkey 源代码页面。找到 hg 存储库(链接如下)并下载 Mozilla 树的快照。不要克隆它,只需从顶部栏中获取存档为 .tar.gz 或 .tar.bz2。

      http://hg.mozilla.org/index.cgi/mozilla-central/file/tip

      解压存档并 cd 到根目录。

      $ cd js/src
      $ autoconf2.13
      $ ./configure
      $ make
      

      这应该会生成一个名为 js 的二进制文件。由于某种原因,当我运行 make install 时,它没有将 js 复制到 /bin/。我只是符号链接 /bin/js 指向 ~/.../mozilla/js/src/js。 Lint 脚本现在可以工作了,我不必再开始构建来修复 lint 错误了:P

      来源:

      https://developer.mozilla.org/en/SpiderMonkey_Build_Documentation

      注意:以上链接调用命令autoconf-2.13。我认为这是一个错字;你想使用我在代码中写的autoconf2.13

      【讨论】:

      • 这不是拼写错误,在 ArchLinux 上它确实被称为 autoconf-2.13。我猜这取决于你的发行版。
      猜你喜欢
      • 2015-07-19
      • 1970-01-01
      • 2012-04-26
      • 2015-05-15
      • 2020-11-28
      • 2011-08-17
      • 2010-09-05
      • 2011-07-25
      • 2014-06-04
      相关资源
      最近更新 更多