当我尝试调用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
所以我完全不知道这个错误是什么意思。
答案 0 :(得分:2)
您尚未完成rvm安装。您需要在.bashrc中的/ usr / bin之前添加〜/ .rvm bin路径:
[[ -s "/Users/pftg/.rvm/scripts/rvm" ]] && source "/Users/pftg/.rvm/scripts/rvm".
要测试只检查$ PATH env。应该类似于:
/.../.rvm/gems/ruby-1.9.3-p125@global/bin:/.../.rvm/rubies/ruby-1.9.3-p125/bin:/.../.rvm/bin:/usr/local/bin
答案 1 :(得分:1)
如果您安装了ruby以及rails的所有内容,则可能需要通过执行以下操作选择“运行命令作为登录shell”复选框,
答案 2 :(得分:0)
我刚刚使用RVM创建了一个“gemset”,切换到它,并尝试再次安装Rails,现在可以正常工作。
我不确定为什么要修复它或为什么之前没有工作。我喜欢什么时候工作,但我宁愿弄明白为什么它不能使用@global
gemset。
感谢您的帮助!
答案 3 :(得分:0)
我也有上面描述的确切症状并且在这个问题上停留了很长一段时间(红宝石环境和依赖性是一个可怕的混乱)。我不能说我已经走出困境但至少我现在正在拿起正确版本的rails并且已经过了这个错误。
我认为这里的真正问题实际上与zlib有关。看起来它是将你的系统版本的ruby(v1.8可能通过yum / apt-get安装)与你需要的其他版本或通过rvm安装的Ruby分离用于其他项目的关键组件。
如果您没有安装zlib,或者rvm没有正确使用它,那么有时您会选择系统ruby / rails并发生各种奇怪的错误。
如果您 DO 安装了zlib(yum / apt-get install zlib),那么我发现的技巧是我特意告诉rvm在安装ruby时使用哪个版本的zlib。
rvm install 1.9.3 --with-zlib-dir = $ rvm_path / usr