【问题标题】:Ruby on Rails installation Error on Ubuntu 12.04Ubuntu 12.04 上的 Ruby on Rails 安装错误
【发布时间】:2023-03-20 21:10:02
【问题描述】:

我使用 rvm 安装了 ruby​​ 和 rails。

我的ubuntu版本是12.04 ruby 版本是 ruby​​ 2.1.2p95 (2014-05-08 修订版 45877) [x86_64-linux] rails 版本是 Rails 4.1.2 rvm 版本是 rvm 1.25.27(稳定版)

安装后,我使用 rails new demo 创建了一个演示应用程序 现在当我输入 rake about 我得到以下错误

hadoopnode1@hadoopnode1:~/work/demo$ rake about

rake aborted!

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

/home/hadoopnode1/.rvm/gems/ruby-2.1.2/gems/execjs-2.2.1/lib/execjs/runtimes.rb:51:in `autodetect'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2/gems/execjs-2.2.1/lib/execjs.rb:5:in `<module:ExecJS>'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2/gems/execjs-2.2.1/lib/execjs.rb:4:in `<top (required)>'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2/gems/uglifier-2.5.1/lib/uglifier.rb:3:in `require'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2/gems/uglifier-2.5.1/lib/uglifier.rb:3:in `<top (required)>'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `require'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `each'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `block in require'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `each'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `require'

/home/hadoopnode1/.rvm/gems/ruby-2.1.2@global/gems/bundler-1.6.2/lib/bundler.rb:132:in `require'

/home/hadoopnode1/work/demo/config/application.rb:7:in `<top (required)>'

/home/hadoopnode1/work/demo/Rakefile:4:in `<top (required)>'

(See full trace by running task with --trace)

请帮帮我..

【问题讨论】:

  • 您应该将输出缩进四个空格以使其出现在代码块中

标签: ruby-on-rails


【解决方案1】:

你需要一个像 nodejs 这样的 JavaScript 运行时

sudo apt-get install nodejs

【讨论】:

    【解决方案2】:

    Rails 中的某些功能需要一个 javascript 运行时。 ExecJS 可以使用几个不同的运行时,例如如果系统范围内安装了 Node.js,这将起作用(请参阅@Iceman 的回答)。如果您无法安装软件包,那么您只需将以下内容添加到您的 Gemfile 中:

    gem 'therubyracer'
    

    【讨论】:

      【解决方案3】:

      从 Rails 3.1 开始,在 Ubuntu Linux 上进行开发就需要 JavaScript 运行时。需要 JavaScript 运行时来编译 Rails 资产管道的代码。对于 Ubuntu Linux 上的开发,最好安装 Node.js 服务器端 JavaScript 环境:

      $ sudo apt-get install nodejs
      

      并将其设置在您的 $PATH 中。

      如果您不安装 Node.js,则需要将其添加到您构建的每个 Rails 应用程序的 Gemfile 中:

      gem 'therubyracer'
      

      我的文章Install Ruby on Rails on Ubuntu Linux 提供了有关在 Ubuntu 上配置 Rails 开发环境的更多指导和建议。

      【讨论】:

        【解决方案4】:

        使用您选择的编辑器,打开 Gemfile 并查找此文件

        gem 'therubyracer',平台::ruby

        删除哈希,使您的文件如下所示:

        gem 'therubyracer',平台::ruby

        点击保存,你应该很高兴。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-17
          • 2011-06-01
          • 2011-11-04
          相关资源
          最近更新 更多