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

时间:2012-02-28 21:07:54

标签: 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 ***

在全新的外壳中全新安装 - 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

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

$ 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

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

$ cat ~/.gemrc 
gem: --no-ri --no-rdoc

我没有系统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/

我还能在哪里找出为什么将gem配置为安装到~/.rvm

2 个答案:

答案 0 :(得分:3)

我的系统显然有些东西腐烂了;没有贪图已经打开了,但坚持

unset GEM_HOME
unset GEM_PATH

到我的~/.bashrc结束时让事情变得清醒。然而,可怕的黑客。

答案 1 :(得分:1)

你有没有在系统位置安装rvm?也许那些env vars进入了系统范围的shell配置。

尝试跑步:

bash -l -x -c'echo'

这将打印bash调试输出,以便您可以查看正在加载的文件。它可能不会在源代码脚本中显示命令,具体取决于您的bash版本。

这可能不适用于你,但如果它存在,那么~/.gemrc的内容是什么?