Rubygems没有使用$ GEM_PATH环境变量

时间:2013-02-18 02:41:03

标签: rubygems rvm

我在linux上使用rvm gemsets来处理使用旧版rails和ruby的rails应用程序。一切都有意义,除了rubygems没有看到红宝石或宝石的正确路径。为了说明,我想使用ruby 1.8.7和一个名为smsx

的gemset
➜  rails git:(master) ✗ rvm current
ruby-1.8.7-p371@smsx

按预期

➜  rails git:(master) ✗ echo $GEM_PATH
/home/matt/.rvm/gems/ruby-1.8.7-p371@smsx:/home/matt/.rvm/gems/ruby-1.8.7-p371@global

然而

➜  rails git:(master) ✗ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.25
  - RUBY VERSION: 1.9.3 (2013-02-06 patchlevel 385) [i686-linux]
  - INSTALLATION DIRECTORY: /home/matt/.rvm/gems/ruby-1.9.3-p385
  ... more ...
  - GEM PATHS:
     - /home/matt/.rvm/gems/ruby-1.9.3-p385
     - /home/matt/.rvm/gems/ruby-1.9.3-p385@global
  ... more ...

所以rubygems认识到我正在使用rvm,但认为我使用的是不同的ruby和默认的gemset。这就像rubygems完全忽略了相关的环境变量。

有关可能原因的任何建议吗?

编辑:

根据要求提供的其他信息

➜  rails git:(master) ✗ echo $PATH
/home/matt/.rvm/gems/ruby-1.8.7-p371@smsx/bin:/home/matt/.rvm/gems/ruby-1.8.7-  p371@global/bin:/home/matt/.rvm/rubies/ruby-1.8.7-p371/bin:/home/matt/.rvm/bin:/home/matt/.rvm/gems/ruby-1.9.3-p385/bin:/home/matt/.rvm/gems/ruby-1.9.3-p385@global/bin:/home/matt/.rvm/rubies/ruby-1.9.3-p385/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

➜  rails git:(master) ✗ which gem
gem () {
    typeset result
    (
        typeset rvmrc
    rvm_rvmrc_files=("/etc/rvmrc" "$HOME/.rvmrc") 
    if [[ -n "${rvm_prefix:-}" ]] && ! [[ "$HOME/.rvmrc" -ef "${rvm_prefix}/.rvmrc" ]]
    then
        rvm_rvmrc_files+=("${rvm_prefix}/.rvmrc") 
    fi
    for rvmrc in "${rvm_rvmrc_files[@]}"
    do
        [[ -s "${rvmrc}" ]] && source "${rvmrc}" || true
    done
    unset rvm_rvmrc_files
    command gem "$@"
) || result=$? 
hash -r
return ${result:-0}

}

我正在使用oh-my-zsh。

0 个答案:

没有答案