ROR的Jruby安装

时间:2013-12-18 12:03:49

标签: ruby-on-rails ruby-on-rails-3 jruby

我正在尝试在ROR上为我的应用程序安装Jruby。使用其文档https://devcenter.heroku.com/articles/moving-an-existing-rails-app-to-run-on-jruby中的命令。捆绑安装遇到以下错误

  1. 您的Ruby引擎是ruby,但您的Gemfile指定了jruby
  2. Gem :: Installer :: ExtensionBuildError:错误:无法构建gem原生扩展。
  3. 此外某些宝石未成功安装,显示错误 安装libv8(3.16.14.3)时发生错误,而Bundler不能 继续。 在捆绑之前确保gem install libv8 -v '3.16.14.3'成功。

    无法找到问题。有人会帮忙吗?

    Gemfile:

    ruby '1.9.3', :engine => 'jruby', :engine_version => '1.7.9'
    gem "rake"
    gem "rails", "3.2.16"
    gem 'foreigner'
    gem 'activerecord-jdbcpostgresql-adapter'
    gem 'jruby'
    gem 'airbrake'
    gem "spreadsheet", "~> 0.9.0"
    gem 'paperclip'
    gem 'aws'
    gem 'aws-sdk'
    gem 'aws-s3', :require => nil
    gem 'authlogic'
    gem 'execjs'
    gem 'mail', :require => nil
    gem 'fastercsv', :require => nil
    gem "rspec-rails"
    gem 'rubyzip', :require => nil
    gem 'test-unit'
    gem 'typhoeus'
    gem 'thin'
    gem 'therubyracer'
    gem 'useragent'
    gem 'will_paginate'
    gem 'therubyracer'
    gem 'libv8', '3.16.14.3'
    

2 个答案:

答案 0 :(得分:3)

你不能在JRuby中使用'therubyracer'和'libv8'宝石。

简短回答:

改为使用'therubyrhino'宝石(https://github.com/cowboyd/therubyrhino

说明:

有些宝石不能在JRuby下使用,因为它们使用的是本机(C)扩展名 - 这里有一个列表:https://github.com/jruby/jruby/wiki/C-Extension-Alternatives

答案 1 :(得分:2)

在安装Ruby / RVM之前,请确保安装以下所有库。

sudo apt-get install zlib1g zlib1g-dev build-essential openssl libssl-dev libmysqlclient18 libmysqlclient-dev libyaml-dev

在安装JRuby之前。

sudo apt-get install ruby-dev
sudo apt-get install build-essential g++
rvm install jruby

请勿指定Jruby版本,默认情况下您将获得最新版本。