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

时间:2016-04-03 15:14:38

标签: ruby-on-rails ruby rbenv

我在此guideline之后从RVM切换到rbenv,现在我可以使用bundler并运行纯ruby,但是当我运行bin/rails sbin/rails g model ModelName或{{1}时我得到以下错误:

rails g model ModelName

此后还有一个大规模的崩溃报告,但我选择不包含它,因为它比允许的StackOverflow帖子长度更长,而且我认为它没有任何有价值的东西。

我用ruby 2.1.2尝试了同样的事情并得到了相同的结果。我还完成了成功运行的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] gem install rubygems-update会收到此错误:

gem pristine --all

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

的结果
gem env

在GEM PATHS下,为什么路径会进入2.1.0?这是我的旧版ruby,我很确定甚至不再在我的机器上了。它未列在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路径以及如何更改它?

我在.bash_profile

中设置了$ PATH
rbenv versions

我的.profile为空,[[ -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 导致: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 即使捆绑包包含在我的宝石列表中。

我尝试过卸载并重新安装ruby至少三次,每次都会遇到相同的错误。我再一次认为问题在于我的GEM路径,但我没有足够的经验知道如何修复它。谢谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

ruby '2.1.4'