我决定在我的个人机器上从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?
我的系统上显然有什么东西已经坏掉了;没有 grepping 已将其打开,但正在调整
unset GEM_HOME
unset GEM_PATH
Run Code Online (Sandbox Code Playgroud)
直到我让事情变得理智的最后~/.bashrc。不过,这是可怕的黑客行为。