24

我是一个运行 Ubuntu 10.04 并尝试安装 rails 的 linux 菜鸟。我首先安装了 ruby​​,然后是 RVM,然后下载并安装了 ruby​​gems,然后安装了 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

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

4

9 回答 9

45

我在全新安装 Ubuntu 10.10 时也遇到了这个问题……即使在安装了“$ rvm notes”记录的 rvm 和 ruby​​ 先决条件之后。

似乎是“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​​ 版本并安装 gem:

$ rvm 使用 1.9.2
$ gem install "whatever"

于 2011-04-17T07:37:39.177 回答
17

我的猜测是您使用 sudo(例如sudo gem install rails)安装了 gems。当您使用 sudo 安装时,RVM 将被忽略并使用系统 ruby​​。

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

所以试试:

gem install rails

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

于 2010-08-19T03:23:53.857 回答
7

如果您收到此警告,“错误:加载命令:更新 (LoadError) 没有要加载的此类文件 -- zlib”

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

所以试试这些步骤

  1. 卸载红宝石

    rvm 删除 ruby​​-1.9.2

  2. 安装必要的库

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

  3. 重新安装红宝石

    rvm 安装 1.9.2

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

    rvm 使用 1.9.2 --default

  5. 为了安全起见,请关闭您当前打开的终端并打开一个新终端。你应该很高兴从这里出发。

于 2011-10-18T17:22:24.573 回答
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
于 2011-07-25T00:21:46.237 回答
2

正如上面的 Rob Di Marco 所说,您不能sudo gem install rails与 RVM 一起使用(请参阅RVM 文档)。

我实际上只是问了一个非常相似的问题。我最初使用 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 的情况下重新安装。为我工作。祝你好运!

于 2010-12-07T03:00:37.583 回答
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
于 2010-11-06T13:11:20.680 回答
0

请参阅:RVM Ruby 1.9.1 install can't locate zlib but its runtime and dev library are there

于 2010-11-28T03:17:36.207 回答
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

于 2012-06-08T12:59:08.323 回答
0

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

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

$PATH 之前rvm 1.9.2 --passenger

/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:/用户/游戏

$PATH 之后rvm 1.9.2 --passenger

/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/games

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

于 2010-09-12T21:17:55.680 回答