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 を使用しています。