从 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 s
、bin/rails g model ModelName
或 rails 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 应用程序在任何其他关于这个错误的几个问题的回复中。
我在这个 guideline 之后从 RVM 切换到 rbenv,现在我可以使用 bundler 和 运行 pure ruby,但是当我 运行 bin/rails s
、bin/rails g model ModelName
或 rails 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 应用程序在任何其他关于这个错误的几个问题的回复中。