2010-11-11 147 views
22

我想在Ubuntu 10.04上安装rails。到目前为止,我已经执行以下命令:在Ubuntu 10.04上安装rails时出错

apt-get install build-essential libapache2-mod-passenger apache2 rubygems ruby1.8-dev libopenssl-ruby 
gem install fastthread 
gem install rails 

Fastthread轻松安装。但是,试图安装导轨导致:

ERROR: Error installing rails: 
    bundler requires RubyGems version >= 1.3.6 

所以,我想这gem -v返回1.3.5

如何升级rubygems? apt-get将不会安装在1.3.5以上。而gem update --system结果:

ERROR: While executing gem ... (RuntimeError) 
    gem update --system is disabled on Debian. RubyGems can be updated using the official Debian repositories by aptitude or apt-get. 

所以现在我根本无法安装滑轨,因为我需要的RubyGems的新版本,和Ubuntu不会让我升级我目前的RubyGems的版本。

作为一个方面说明,我试图通过apt-get install rails似乎工作,但我没有看到rails作为宝石时,我键入gem list安装轨。这是怎么回事?

另注:gem list的结果是:通过

易于得到安装的那些宝石
*** LOCAL GEMS *** 

abstract (1.0.0) 
actionmailer (3.0.1, 3.0.0) 
actionpack (3.0.1, 3.0.0) 
activemodel (3.0.1, 3.0.0) 
activerecord (3.0.1, 3.0.0) 
activeresource (3.0.1, 3.0.0) 
activesupport (3.0.1, 3.0.0) 
arel (2.0.1, 1.0.1) 
builder (2.1.2) 
erubis (2.6.6) 
fastthread (1.0.7) 
i18n (0.4.2) 
mail (2.2.9) 
mime-types (1.16) 
mysql (2.8.1) 
polyglot (0.3.1) 
rack (1.2.1) 
rack-mount (0.6.13) 
rack-test (0.5.6) 
railties (3.0.1, 3.0.0) 
rake (0.8.7) 
rubygems-update (1.3.7) 
thor (0.14.4) 
treetop (1.4.8) 
tzinfo (0.3.23) 

我想安装导轨?在通过apt-get安装rails之前,我只有mysql和fastthread。

+0

我有完全相同的问题。它为你解决了吗? – Genadinik 2011-04-20 22:47:07

+0

有趣的是,安装rubygems 1.7.2后我仍然得到这个消息:) – Genadinik 2011-04-21 16:33:57

回答

6

你必须手动安装rubygems 1.3.7(从网站wget,提取,运行setup.rb)。

6

安装rvm并控制你的ruby环境。

http://rvm.io/

+1

Fábio是对的。许多Linux发行版已经落后,并且不了解Ruby世界的当前状态。 Python也有类似的问题。 RVM解决了这个问题(你可以免费获得一些灵活性!)。因为我一直在使用RVM(和Bundler),所以我不会遇到在Ubuntu或Mac OS X上安装gems时遇到的问题。 – Scott 2010-11-11 10:24:13

1

出于某种原因,是Debian/Ubuntu的Ruby包不包括RubyGems的图书馆。更糟糕的是,RubyGems已经捆绑到Ruby 1.9.x中,但是如果你尝试通过apt-get来安装它,软件包管理器会强制你将它们安装成两个独立的软件包。

Debian/Ubuntu RubyGems包过时了,正如你注意到的那样,为了使事情变得更加复杂,你不能升级RubyGems的打包版本,只是在它上面安装一个新的RubyGems版本,因为系统已经打补丁以防止你完成任务,就像你经历过的一样。

我的建议是避免使用Ubuntu/Debian pckaged版本。 的替代品:

  1. 的开发系统,使用RVM
  2. 用于生产服务器,从源代码安装Ruby。如果你需要Ruby < 1.9,你可以使用Ruby Enterprise版本,它也可以作为Debian/Ubuntu软件包。如果你想要Ruby 1.9.x,从源代码编译它。
42

酒店还设有一个宝石它处理更新

sudo gem install rubygems-update 
sudo /var/lib/gems/1.8/bin/update_rubygems 
+0

像魅力一样工作,谢谢! – 2011-12-27 13:20:06

+4

完美的答案。帮了我很多。在我的情况下,我只是有另一个宝石版本,所以我不得不这样做:sudo /var/lib/gems/1.9.1/bin/update_rubygems – 2012-01-26 23:54:42

+1

这个答案是Ubuntu/Ruby/Gem NIGHTMARE的出路,谢谢! – mkoistinen 2012-10-12 22:39:16

2

这可能是做这件事,这是不可用之前的一个新的方式,但我跑

sudo gem update --system 

和它给了我最新版本。