0

Linuxでrvm gemsetsを使用して、古いバージョンのRailsとRubyを使用してRailsアプリを操作しています。rubygems が ruby​​ または gem の正しいパスを認識していないことを除いて、すべてが理にかなっています。例として、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 を使用しています。

4

0 に答える 0