使用RVM在Ubuntu上安装Rails路径

时间:2010-08-19 02:33:29

标签: ruby-on-rails ubuntu rvm

我是运行Ubuntu 10.04并尝试安装rails的linux noob。我首先安装了ruby然后安装了RVM,然后下载并安装了rubygems然后安装了rails。

如果我在命令前面有一个'sudo',Rails似乎只会响应。如果我在终端上写'rails new test',我会得到这个:

/usr/local/lib/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:214:in `activate'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:1082:in `gem'
    from /usr/bin/rails:18

如果我去终端并写'rails -v',我会得到同样的结果:

   /usr/local/lib/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
        from /usr/local/lib/site_ruby/1.8/rubygems.rb:214:in `activate'
        from /usr/local/lib/site_ruby/1.8/rubygems.rb:1082:in `gem'
        from /usr/bin/rails:18

如果我去终端并写'sudo rails -v',我会得到以下信息: Rails 3.0.0.rc

'宝石环境'给了我这个:

RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.2 (2010-07-11 patchlevel -1) [i686-linux]
  - INSTALLATION DIRECTORY: /home/josh/.rvm/gems/ruby-1.9.2-rc2@rails3tutorial
  - RUBY EXECUTABLE: /home/josh/.rvm/rubies/ruby-1.9.2-rc2/bin/ruby
  - EXECUTABLE DIRECTORY: /home/josh/.rvm/gems/ruby-1.9.2-rc2@rails3tutorial/bin

我怀疑我的路径设置不正确,但我不确定如何修复它。 建议?

9 个答案:

答案 0 :(得分:45)

即使在安装了“$ rvm notes”记录的rvm和ruby先决条件之后,我也在Ubuntu 10.10的干净安装上遇到了这个问题。

似乎是“rvm”gem安装无法找到系统zlib安装的问题。丹尼尔上面的评论是一个很好的评论 - 遗憾的是它没有被列为答案。

所以我的解决方案是遵循Daniel在https://rvm.beginrescueend.com/packages/zlib/指出的指示。

$ rvm pkg install zlib
$ rvm remove 1.9.2
$ rvm install 1.9.2

第一个命令将zlib本地安装到您的rvm区域。 第二个命令删除ruby 1.9.2,第三个命令用rvm-local zlib重新安装ruby 1.9.2。

然后设置你的ruby版本并安装gems:

$ rvm使用1.9.2
$ gem安装“无论什么”

答案 1 :(得分:17)

我的猜测是你使用sudo安装了你的宝石(例如sudo gem install rails)。当您使用sudo进行安装时,将忽略RVM并且正在使用系统ruby。

使用RVM时,你真的不想用sudo安装(注意有一个命令rvmsudo,通过sudo运行你的RVM设置,但你真的很少会使用它)。从您的环境中可以看出,您的宝石将存储在/home/josh/.rvm/gems/ruby-1.9.2-rc2@rails3tutorial/gems中,您无需root权限即可安装。

所以试试:

gem install rails

作为你自己,看看一切是否正常。

答案 2 :(得分:7)

如果收到此警告,“错误:正在加载命令:update(LoadError)没有这样的文件要加载 - zlib”

基本上,如果在编译ruby时zlib库不存在,你只需要返回并安装库然后重新编译ruby。

请尝试以下步骤

  1. 卸载ruby

      

    rvm remove ruby​​-1.9.2

  2. 安装必要的库

      

    sudo apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev

  3. 重新安装ruby

      

    rvm install 1.9.2

  4. 您可能希望将此版本的ruby设置为默认值

      

    rvm使用1.9.2 - 默认

  5. 为了安全起见,关闭您当前打开的终端并打开一个新终端。你应该好好离开这里。

答案 3 :(得分:2)

正如Rob Di Marco所述,您不能将sudo gem install rails与RVM一起使用(请参阅RVM Documentation)。

我其实只是问了一个非常相似的问题。我最初使用sudo gem安装了rails,当我尝试使用RVM安装旧版本的rails时,遇到了这个问题。这是我的代码:

rvm use 1.8.7
rvm gemset create rails3.0.1
rvm 1.8.7@rails3.0.1
sudo gem install rails --version=3.0.1 #the *sudo* in this line is WRONG

另一位用户(zetetic)建议使用以下命令卸载“sudo gem rails”:

sudo gem uninstall rails

然后在没有sudo的情况下重新安装 - gem install rails

在我完成了所有这些之后,我重新尝试了原始代码并且它有效,但这次没有sudo:

rvm use 1.8.7
rvm gemset create rails3.0.1
rvm 1.8.7@rails3.0.1
gem install rails --version=3.0.1

如果您尝试使用RVM,上面的代码可能只与您相关,但要解决您的问题,请尝试卸载您的sudo rails并重新安装而不使用sudo。为我工作。祝你好运!

答案 4 :(得分:2)

解决方案

apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev

然后:

rvm install ruby-1.9.2-p290
rvm default 1.9.2

答案 5 :(得分:0)

不,我的所有宝石都是在没有 sudo 的情况下安装的。

以下是一些可能有用的调试信息。

rvm 1.9.2 --passenger

之前

$ PATH

  

/home/kevin/.rvm/gems/ruby-1.9.2-p0/bin:   /home/kevin/.rvm/gems/ruby-1.9.2-p0@global/bin:   /home/kevin/.rvm/rubies/ruby-1.9.2-p0/bin:/home/kevin/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/ USR / bin中:/ sbin目录:在/ usr /游戏

rvm 1.9.2 --passenger

之后

$ PATH

  

/home/kevin/.rvm/gems/ruby-1.9.2-p0/bin:   /bin:/home/kevin/.rvm/rubies/ruby-1.9.2-p0/bin:/home/kevin/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/ sbin目录:在/ usr / bin中:/ sbin目录:/ bin中:在/ usr /游戏

这是我的.bashrc文件:http://pastebin.com/H9U3azAk

答案 6 :(得分:0)

如果您通过来源安装

ext/Setup and uncomment the zlib line

$ ./configure
$ make
$ sudo make install

$ ruby -v
=> ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

$ gem -v
=> 1.3.7

答案 7 :(得分:0)

答案 8 :(得分:0)

  1. 首先,安装必要的库

      

    sudo apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev

  2. 然后,重新安装ruby 1.9.2

      

    rvm重新安装1.9.2&& rvm使用1.9.2