在我搬到rbenv之后,为什么gem会继续安装到〜/ .rvm?

tro*_*ine 5 ruby rvm rbenv

我决定在我的个人机器上从rvm转移rbenv.按照rvm删除说明,安装rbenv,一切看起来很好看.重新启动我的shell会话后:

$ rbenv global
1.9.3-p0

$ ls .rvm
ls: cannot access .rvm: No such file or directory

$ rbenv exec gem list

*** LOCAL GEMS ***
Run Code Online (Sandbox Code Playgroud)

一个全新的安装在一个新的外壳 - RVM早已不复存在.现在,当我安装bundler时

$ rbenv exec gem install bundler
Fetching: bundler-1.0.22.gem (100%)
Successfully installed bundler-1.0.22
1 gem installed

$ rbenv rehash

$ echo $?
0

$ rbenv which bundle
rbenv: bundle: command not found
Run Code Online (Sandbox Code Playgroud)

什么?的确,看看这个废话:

$ ls .rvm/gems/ruby-1.9.3-p0/gems/bundler-1.0.22/
bin  bundler.gemspec  CHANGELOG.md  ISSUES.md  lib  LICENSE  man  Rakefile  README.md  spec  UPGRADING.md
Run Code Online (Sandbox Code Playgroud)

不知何故,某种程度上,RVM仍然有它的钩子.我的~/.bash*文件很干净

$ cat ~/.gemrc 
gem: --no-ri --no-rdoc
Run Code Online (Sandbox Code Playgroud)

我没有系统ruby,没有全局安装的RVM(没有/etc/profile/,没有/etc/profile.d/rvm.sh,没有任何内容/etc/bash.bashrc),我完全失去了.

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.11
  - RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [i686-linux]
  - INSTALLATION DIRECTORY: /home/blt/.rvm/gems/ruby-1.9.3-p0
  - RUBY EXECUTABLE: /home/blt/.rbenv/versions/1.9.3-p0/bin/ruby
  - EXECUTABLE DIRECTORY: /home/blt/.rvm/gems/ruby-1.9.3-p0/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /home/blt/.rvm/gems/ruby-1.9.3-p0
     - /home/blt/.rvm/gems/ruby-1.9.3-p0@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
     - "gem" => "--no-ri --no-rdoc"
  - REMOTE SOURCES:
     - http://rubygems.org/
Run Code Online (Sandbox Code Playgroud)

还有什么地方可以找出为什么gem配置安装到~/.rvm

tro*_*ine 3

我的系统上显然有什么东西已经坏掉了;没有 grepping 已将其打开,但正在调整

unset GEM_HOME
unset GEM_PATH
Run Code Online (Sandbox Code Playgroud)

直到我让事情变得理智的最后~/.bashrc。不过,这是可怕的黑客行为。