1

当我尝试调用 rails 时出现此错误,rails -v或者rails -c

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

我安装了 RVM,用它来安装 Ruby 1.9.3,然后切换到它rvm use 1.9.3 --default

当我ruby -v

ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

我也gem install rails --no-rdoc --no-ri检查了... ls ~/ruby/gems/gems/

actionmailer-3.2.8/    journey-1.0.4/     rake-0.9.2.2/
actionpack-3.2.8/      json-1.7.5/        rdoc-3.12/
activemodel-3.2.8/     mail-2.4.4/        rubygems-bundler-1.0.7/
activerecord-3.2.8/    mime-types-1.19/   rvm-1.11.3.5/
activeresource-3.2.8/  multi_json-1.3.6/  sprockets-2.1.3/
activesupport-3.2.8/   polyglot-0.3.3/    sprockets-2.4.5/
arel-3.0.2/            rack-1.4.1/        thor-0.16.0/
builder-3.0.0/         rack-cache-1.2/    tilt-1.3.3/
bundler-1.1.5/         rack-ssl-1.3.2/    treetop-1.4.10/
erubis-2.7.0/          rack-test-0.6.1/   tzinfo-0.3.33/
hike-1.2.1/            rails-3.2.8/
i18n-0.6.0/            railties-3.2.8/

如果我echo $GEM_PATH

/home/flackend/.rvm/gems/ruby-1.9.3-p194:/home/flackend/.rvm/gems/ruby-1.9.3-p194@global

echo $PATH

/home/flackend/.rvm/gems/ruby-1.9.3-p194/bin:/home/flackend/.rvm/gems/ruby-1.9.3-p194@global/bin:/home/flackend/.rvm/rubies/ruby-1.9.3-p194/bin:/home/flackend/.rvm/bin:/usr/local/jdk/bin:/home/flackend/perl5/bin:/usr/kerberos/bin:/usr/lib/courier-imap/bin:/usr/lib64/ccache:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/home/flackend/.rvm/bin:/home/flackend/bin

cat ~/.bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# User specific aliases and functions

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

cat ~/.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

因此,某处有一条路径可以查看系统 Ruby 安装。有任何想法吗?谢谢!


编辑

好的,另外,如果我切换回系统 Ruby rvm use system、 和rails -v,我会得到:

Rails 2.3.8

所以我完全不知道这个错误表示什么。

4

4 回答 4

2

您尚未完成 rvm 安装。您需要通过 .bashrc 中的命令在 /usr/bin 之前添加 ~/.rvm bin 路径:

[[ -s "/Users/pftg/.rvm/scripts/rvm" ]] && source "/Users/pftg/.rvm/scripts/rvm".

要测试只需检查 $PATH 环境。应该类似于:

/.../.rvm/gems/ruby-1.9.3-p125@global/bin:/.../.rvm/rubies/ruby-1.9.3-p125/bin:/.../.rvm/bin:/usr/local/bin
于 2012-08-24T08:59:28.923 回答
1

如果您安装了所有 ruby​​ 以及 rails 方法,您可能需要通过执行以下操作来选择“Run command as login shell”复选框,

  1. 打开终端
  2. 转到编辑选项卡,然后从菜单项中选择配置文件首选项。
  3. 应显示配置文件首选项窗口,然后选择标题和命令选项卡。
  4. 然后选中复选框 Run command as a login shell。
于 2012-08-24T09:18:12.727 回答
0

I just used RVM to create a "gemset", switched to it, and tried installing Rails again and it works now.

https://rvm.io/gemsets/

I'm not sure why that fixed it or why it wasn't working before. I like when things work, but I would rather have figured out why it wasn't working with the @global gemset.

Thanks for all your help!

于 2012-08-25T07:09:59.680 回答
0

我也有上面描述的确切症状,并且在这个问题上停留了很长一段时间(ruby 环境和依赖项是一团糟)。我不能说我已经走出困境,但至少我现在选择了正确版本的 rails 并克服了这个错误。

我相信这里真正的问题实际上与 zlib 有关。将系统版本的 ruby​​(可能通过 yum/apt-get 安装)与其他项目所需的其他版本或 Ruby(通过 rvm 安装)分开似乎是一个关键组件。

如果您没有安装 zlib,或者 rvm 没有正确使用它,那么有时您会拿起系统 ruby​​/rails 并出现各种奇怪的错误。

如果您确实安装了 zlib(yum/apt-get install zlib),那么我发现的窍门是我必须特别告诉 rvm 在安装 ruby​​ 时使用哪个版本的 zlib

rvm 安装 1.9.3 --with-zlib-dir=$rvm_path/usr

于 2014-05-05T09:05:57.570 回答