Почему gem сохраняется при установке в ~ / .rvm после того, как я перешел в rbenv? - PullRequest
5 голосов
/ 29 февраля 2012

Я решил перейти от rvm к rbenv на моей персональной машине.Следовал инструкциям по удалению rvm, установил rbenv и все выглядит замечательно.После перезапуска моего сеанса оболочки:

$ 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

У меня нет системного рубина, нет глобально установленного 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 ]

3 голосов
/ 29 февраля 2012

Что-то явно прогнило в моей системе;никакая чепуха не подняла его, но прикосновение

unset GEM_HOME
unset GEM_PATH

к концу моих ~/.bashrc сделало все вменяемым.Хотя ужасный хак.

1 голос
/ 12 мая 2012

Вы когда-нибудь устанавливали rvm в системном расположении? Возможно, эти env vars попали в общесистемную конфигурацию оболочки.

Попробуйте запустить:

bash -l -x -c 'echo'

Это выведет выходные данные отладки bash, чтобы вы могли видеть, какие файлы загружаются. В зависимости от вашей версии bash он может не отображать команды внутри скриптов.

Возможно, это не относится к вам, но если оно существует, каково содержание ~/.gemrc?

...