execjs - 找不到JavaScript运行时

时间:2014-10-15 13:59:09

标签: ruby-on-rails ruby nginx bundler passenger

我有一个RoR(4.1)应用程序,我尝试使用Passenger& Nginx的。我想在我的CI服务器(jenkins)上进行捆绑,但是当我复制文件时,我得到了可怕的:

Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

我的Gemfile中有therubyracer,我可以在我的$ GEM_HOME(./vendor/bundle/ruby/1.9.1/gems/)中看到它。显然,我可以在网络服务器上捆绑安装并修复问题,但那是我试图避免的。

我尝试使用"捆绑包 - 所有",没有任何效果,但我目前正在使用"捆绑安装 - 部署"在构建服务器上,然后压缩整个文件夹并将其移动到Web服务器。构建服务器与Web服务器(Debian 7 x64)的发行版相同。

有没有人知道我错过了什么?是否可以在不在本地运行bundle install的情况下使其工作?

Bundler版本1.7.3

1 个答案:

答案 0 :(得分:2)

我遇到了这个问题,这就是我发现的:

您需要一个javascript运行时库(如nodejs)来解决此问题。

对于Ubuntu用户,请在终端中尝试以下命令:

sudo apt-get install nodejs

要在使用yum的系统上安装nodejs,请在终端中尝试以下操作:

yum -y install nodejs

希望有所帮助:)