从 RVM 切换到 rbenv 后,我的 ruby gems 路径搞砸了吗?

My ruby gems path is messed up after switching from RVM to rbenv?

我在这个 guideline 之后从 RVM 切换到 rbenv,现在我可以使用 bundler 和 运行 pure ruby,但是当我 运行 bin/rails sbin/rails g model ModelNamerails g model ModelName 我收到以下错误:

Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring.
/Users/home/Development/blogger/vendor/bundle/gems/json-1.8.3/lib/json/ext/parser.bundle: [BUG] Segmentation fault at 0x00000000000418
ruby 2.1.4p265 (2014-10-27 revision 48166) [x86_64-darwin15.0]

此后还有大量崩溃报告,但我选择不包括它,因为它比允许的 Whosebug post 长度长,而且我认为它没有任何价值。

我在 ruby 2.1.2 上尝试过同样的事情,得到了同样的结果。我还完成了 gem install rubygems-update,其中 运行 成功,gem pristine --all 出现此错误:

ERROR:  While executing gem ... (Gem::Exception)
    Failed to find gems ["==all"] >= 0

这是gem env

的结果
RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 2.1.4 (2014-10-27 patchlevel 265) [x86_64-darwin15.0]
  - INSTALLATION DIRECTORY: /Users/home/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0
  - RUBY EXECUTABLE: /Users/home/.rbenv/versions/2.1.4/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/home/.rbenv/versions/2.1.4/bin
  - SPEC CACHE DIRECTORY: /Users/home/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-15
  - GEM PATHS:
     - /Users/home/.rbenv/versions/2.1.4/lib/ruby/gems/2.1.0
     - /Users/home/.gem/ruby/2.1.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/home/.rbenv/versions/2.1.4/bin
     - /usr/local/Cellar/rbenv/0.4.0/libexec
     - /Users/home/.rbenv/shims
     - /Users/home/.rbenv/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin

在GEM PATHS下,为什么路径进入2.1.0?这是我的 ruby 的旧版本,我很确定它甚至不在我的机器上了。它未在 rbenv versions 下列出。这是问题吗?如何更改 gem 路径以及将其更改为什么?

我在 .bash_profile

中设置了 $PATH
[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile

export PATH="$HOME/.rbenv/bin:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

我的 .profile 是空的,echo $PATH 导致:/Users/home/.rbenv/shims:/Users/home/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

which ruby 结果为 /Users/home/.rbenv/shims/ruby

另一个问题是,如果我尝试在我的主目录中使用 bundle 命令,我会得到 Could not locate Gemfile or .bundle/ directory 即使捆绑器包含在我的 gem 列表中。

我已经尝试卸载并重新安装 ruby 至少三次,每次都出现相同的错误。我再次相信问题出在我的 GEM 路径上,但我没有足够的经验知道如何修复它。谢谢。

@usernm ...我认为您的目录中应该有一个 GEMFILE。问题很混乱。因此,只需尝试在顶行添加 ruby 'version' 即可。我希望这是一个可以考虑的选项。好例子是:

ruby '2.1.4'

原来解决方案只是删除我的 rails 项目并开始一个新项目。我还卸载并重新安装了我的 gems,并在创建新项目之前进行了 rbenv rehash。我想我应该 post 一个答案,而不仅仅是删除问题,因为我没有看到删除和重新制作 rails 应用程序在任何其他关于这个错误的几个问题的回复中。