2012-12-18 80 views
1

我试图使用Capistrano的部署,以及它失败,因为一个rubyracer宝石问题。的therubyracer宝石保持引起包安装失败在Ubuntu 12.04

我尝试添加以下的变体Gemfile中,然后部署在Ubuntu上并没有什么生产服务器的工作原理:

1) 
gem 'libv8', '3.11.8.3' 

3) 
gem 'therubyracer' 
gem 'libv8', '3.3.10.4' 

4) 
gem 'libv8', '~> 3.11.8.3' 

这一切都给出了同样的错误:

一个错误,而安装therubyracer发生( 0.11.0),并且Bundler无法继续。 确保创业板安装therubyracer -v“0.11.0”绑定前的成功。

所以我试试这个来代替:

group :production do 
    gem 'therubyracer', '0.10.2', :platforms => :ruby 
end 

但是,这会导致此错误:

Bundler could not find compatible versions for gem "libv8": 
In Gemfile: 
    therubyracer (= 0.10.2) ruby depends on 
    libv8 (~> 3.3.10) ruby 
libv8 (3.11.8.3) 

看来我目前对服务器的两个版本lib8的:

libv8 (3.11.8.4, 3.3.10.4 x86_64-linux) 

任何想法?

+0

您是否有命令行访问生产服务器? –

回答

0
  1. 尝试node.js作为您的运行时javascript环境,但不是libv8。

    如果你坚持libv8
  2. ,不指定版本。似乎这些版本存在冲突。例如在你的Gemfile:

    gem 'therubyracer' 
    gem 'libv8' 
    
0

在生产服务器的命令行做

gem install therubyracer 
1

刚刚从你的机器

Terminal

gem uninstall libv8 

卸载这两个libv8在终端,你会的被提示选择你想卸载这样的版本:

  1. libv8 3.3.10.4 x86_64的Linux的
  2. libv8 3.11.8.4 x86_64的Linux的
  3. 所有

选择3和按回车键(返回键)。它会卸载你的机器上安装的两个libv8版本。现在

,在你的Gemfile只包括但libv8 therubyracer和捆绑安装

gem 'therubyracer' 
bundle install 

它将工作

5

后从计算器试图解决方案小时,我从这个网站一个简单的办法只有2命令中,笔者提到,

When installing therubyracer gem you may run into this problem on a fresh machine install.

http://usefulprogrammingshit.drmcnasty.com/?p=12

sudo apt-get install g++ 
sudo apt-get install build-essential 

我对ruby一无所知,所以你需要研究更多关于这个解决方案,但毕竟,“therubyracer 0.12.2”安装在Ubuntu 14.04上。我希望它可以帮助。

+0

一直试图对此进行分类,这对我来说是完美的解决方案,谢谢!它可以压缩到一行中的'sudo apt-get install g ++ build-essential'。 –

相关问题