安装 rubyracer 时出错
Posted
技术标签:
【中文标题】安装 rubyracer 时出错【英文标题】:Getting error while installing therubyracer 【发布时间】:2012-11-27 00:53:43 【问题描述】:我在捆绑安装我的更新时收到错误消息。这是我的gemfile:
source 'https://rubygems.org'
gem 'rails', '3.2.1'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'mysql2'
gem 'libv8'
gem 'therubyracer'
gem 'haml'
gem 'haml-rails'
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'compass-rails'
gem 'chosen-rails'
gem "bootstrap-wysihtml5-rails", "~> 0.3.1.10"
gem 'hpricot'
gem "rest-open-uri", "~> 1.0.0"
gem 'jquery-datatables-rails', github: 'rweng/jquery-datatables-rails'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer'
gem 'uglifier', '>= 1.0.3'
gem "commonjs", "~> 0.2.6"
gem "less", "~> 2.2.2"
gem "less-rails", "~> 2.2.6"
end
gem 'jquery-rails'
gem 'simple_form'
gem 'client_side_validations'
gem 'client_side_validations-simple_form'
# To use ActiveModel has_secure_password
gem 'bcrypt-ruby', '~> 3.0.0'
这是我在生产环境中运行 bundle install 命令后遇到的错误:
安装 rubyracer (0.11.0) 和 Bundler 时出错 无法继续。确保
gem install therubyracer -v '0.11.0'
在捆绑之前成功。
【问题讨论】:
在运行 bundle install 之前您是否尝试过手动安装 libv8?这是您收到的唯一错误消息吗? 【参考方案1】:我做了以下对我有用的事情:
我从我的 Gemfile 中注释掉了 therubyracer 运行“捆绑安装” 使用“gem install therubyracer”安装了最新版本的 therubyracer(在撰写本文时为 0.11.2) 我取消注释 therubyracer 以将其放回我的 Gemfile 中 再次运行“捆绑安装”,一切正常【讨论】:
我跑了bundle update therubyracer
,这对我有用。我猜我的 v8 安装与我正确的 therubyracer
版本不匹配。
2018 我在这里... 在 AWS Cloud9 上 gem install therubyracer
导致 Successfully installed therubyracer-0.12.3
将 gem 放回我的 gemfile 导致 Bundler could not find compatible versions for gem "libv8":
+ In Gemfile: mini_racer was resolved to 0.1.3, which depends on libv8 (~> 5.0)
+ therubyracer (= 0.12.3) was resolved to 0.12.3, which depends on libv8 (~> 3.16.14.15)
+ @987654328 @ + Could not find gem 'mini_racer' in any of the sources.
【参考方案2】:
在Gemfile
中包含libv8
似乎可以解决这个问题:
gem 'libv8', '~> 3.11.8.3'
通过https://github.com/cowboyd/therubyracer/issues/215
【讨论】:
【参考方案3】:我做了一个 gem 卸载 therubyracer 和 gem 卸载 libv8,然后从 gemfile 中删除 libv8 并只使用 therubyracer,然后运行 'bundle install'
【讨论】:
【参考方案4】:group :assets do
gem 'therubyracer'
end
如果还是不行,试试安装NodeJS
【讨论】:
【参考方案5】:可能您的 libv8 版本和 therubyracer 版本不匹配。
所以,您可以在 Gemfile 中包含正确的 libv8 版本,这类似于 jibiel的解决方案
gem 'libv8', '~> 3.11.8.3'
但是,我更愿意执行这两个步骤,因此,您不必担心找到合适的 libv8 版本:
Gemfile
gem 'therubyracer'
terminal
gem uninstall libv8
bundle install
而且,这就是我为解决同样的问题所做的工作
【讨论】:
以上是关于安装 rubyracer 时出错的主要内容,如果未能解决你的问题,请参考以下文章