Ruby MacOS无法安装Jekyll Gem

Ruby MacOS无法安装Jekyll Gem,ruby,macos,rubygems,jekyll,rbenv,Ruby,Macos,Rubygems,Jekyll,Rbenv,我已经尝试了一切,试图安装杰基尔宝石。我卸载/重新安装了rbenv,安装了ruby 2.6.1,将其设置为全局,运行xcode-select--install大约1000次,运行xcode-select--switch/Library/Developer/CommandLineTools,以及gem-update--system以及其他各种堆栈溢出修复程序。这些都不起作用。每次我都会收到这样一条熟悉的错误消息: Building native extensions. This could tak

我已经尝试了一切,试图安装杰基尔宝石。我卸载/重新安装了rbenv,安装了ruby 2.6.1,将其设置为全局,运行
xcode-select--install
大约1000次,运行
xcode-select--switch/Library/Developer/CommandLineTools
,以及
gem-update--system
以及其他各种堆栈溢出修复程序。这些都不起作用。每次我都会收到这样一条熟悉的错误消息:

Building native extensions. This could take a while...
ERROR:  Error installing jekyll:
    ERROR: Failed to build gem native extension.

    current directory: /usr/local/lib/ruby/gems/2.6.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
/usr/local/opt/ruby/bin/ruby -I 
/usr/local/Cellar/ruby/2.6.1/lib/ruby/2.6.0 -r ./siteconf20190302-90413-16ok71q.rb extconf.rb
creating Makefile

current directory: /usr/local/lib/ruby/gems/2.6.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
make "DESTDIR=" clean

current directory: /usr/local/lib/ruby/gems/2.6.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
make "DESTDIR="
compiling ruby_http_parser.c
In file included from ruby_http_parser.c:1:
In file included from /usr/local/Cellar/ruby/2.6.1/include/ruby-2.6.0/ruby.h:33:
In file included from /usr/local/Cellar/ruby/2.6.1/include/ruby-2.6.0/ruby/ruby.h:29:
/usr/local/Cellar/ruby/2.6.1/include/ruby-2.6.0/ruby/defines.h:123:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
make: *** [ruby_http_parser.o] Error 1

make failed, exit code 2

Gem files will remain installed in /usr/local/lib/ruby/gems/2.6.0/gems/http_parser.rb-0.6.0 for inspection.
Results logged to 
/usr/local/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-18/2.6.0/http_parser.rb-0.6.0/gem_make.out
构建本机扩展。这可能需要一段时间。。。
错误:安装jekyll时出错:
错误:无法生成gem本机扩展。
当前目录:/usr/local/lib/ruby/gems/2.6.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
/usr/local/opt/ruby/bin/ruby-I
/usr/local/ceral/ruby/2.6.1/lib/ruby/2.6.0-r./siteconf20190302-90413-16ok71q.rbextconf.rb
创建Makefile
当前目录:/usr/local/lib/ruby/gems/2.6.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
使“DESTDIR=”干净
当前目录:/usr/local/lib/ruby/gems/2.6.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
使“DESTDIR=”
编译ruby_http_parser.c
在ruby_http_parser.c中包含的文件中:1:
在/usr/local/ceral/ruby/2.6.1/include/ruby-2.6.0/ruby.h:33中包含的文件中:
在/usr/local/ceral/ruby/2.6.1/include/ruby-2.6.0/ruby/ruby.h:29中包含的文件中:
/usr/local/ceral/ruby/2.6.1/include/ruby-2.6.0/ruby/defines.h:123:10:致命错误:找不到“stdio.h”文件
#包括
^~~~~~~~~
生成1个错误。
make:**[ruby\u http\u parser.o]错误1
make失败,退出代码2
Gem文件仍将安装在/usr/local/lib/ruby/gems/2.6.0/gems/http_parser.rb-0.6.0中以供检查。
结果记录到
/usr/local/lib/ruby/gems/2.6.0/extensions/x86_64-darwin-18/2.6.0/http_parser.rb-0.6.0/gem_make.out
编辑:

我正在使用MacOS 10.14,这是我的gem环境:

RubyGems Environment:
  - RUBYGEMS VERSION: 3.0.2
  - RUBY VERSION: 2.6.1 (2019-01-30 patchlevel 33) [x86_64-darwin18]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/2.6.0
  - USER INSTALLATION DIRECTORY: /Users/<username>/.gem/ruby/2.6.0
  - RUBY EXECUTABLE: /usr/local/opt/ruby/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /usr/local/lib/ruby/gems/2.6.0/bin
  - SPEC CACHE DIRECTORY: /Users/<username>/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: 
    /usr/local/Cellar/ruby/2.6.1/etc
  - RUBYGEMS PLATFORMS:
        - ruby
        - x86_64-darwin-18
  - GEM PATHS:
        - /usr/local/lib/ruby/gems/2.6.0
        - /Users/<username>/.gem/ruby/2.6.0
        - /usr/local/Cellar/ruby/2.6.1/lib/ruby/gems/2.6.0
  - GEM CONFIGURATION:
        - :update_sources => true
        - :verbose => true
        - :backtrace => false
        - :bulk_threshold => 1000
  - REMOTE SOURCES:
        - https://rubygems.org/
  - SHELL PATH:
        - /usr/local/opt/ruby/bin
        - /bin
        - /Users/<username>/.rbenv/shims
        - /Users/<username>/.rbenv/bin
        - /Library/Frameworks/Python.framework/Versions/3.6/bin
        - /usr/local/bin
        - /usr/bin
        - /bin
        - /usr/sbin
        - /sbin
        - /opt/X11/bin
        - /usr/local/share/dotnet
        - /usr/local/go/bin
        - /Users/<username>/.rbenv/bin
        - /Users/<username>/.rbenv/shims
        - /Users/<username>/.rbenv/shims
        - /Users/<username>/.rbenv/bin
        - /Library/Frameworks/Python.framework/Versions/3.6/bin
        - /usr/local/bin
        - /usr/bin
        - /bin
        - /usr/sbin
        - /sbin
        - /usr/local/go/bin
        - /usr/local/share/dotnet
        - /opt/X11/bin
        - /Users/<username>/.rbenv/bin
        - /Users/<username>/.rbenv/shims
        - /bin
RubyGems环境:
-RUBYGEMS版本:3.0.2
-RUBY版本:2.6.1(2019-01-30 patchlevel 33)[x86_64-darwin18]
-安装目录:/usr/local/lib/ruby/gems/2.6.0
-用户安装目录:/Users/.gem/ruby/2.6.0
-RUBY可执行文件:/usr/local/opt/RUBY/bin/RUBY
-GIT可执行文件:/usr/bin/GIT
-可执行目录:/usr/local/lib/ruby/gems/2.6.0/bin
-规格缓存目录:/Users/.gem/specs
-系统配置目录:
/usr/local/Cell/ruby/2.6.1/etc
-RUBYGEMS平台:
-红宝石
-x86_64-darwin-18
-宝石路径:
-/usr/local/lib/ruby/gems/2.6.0
-/Users//.gem/ruby/2.6.0
-/usr/local/ceral/ruby/2.6.1/lib/ruby/gems/2.6.0
-GEM配置:
-:update_sources=>true
-:verbose=>true
-:backtrace=>false
-:批量_阈值=>1000
-远程来源:
- https://rubygems.org/
-外壳路径:
-/usr/local/opt/ruby/bin
-/bin
-/Users//.rbenv/垫片
-/Users//.rbenv/bin
-/Library/Frameworks/Python.framework/Versions/3.6/bin
-/usr/local/bin
-/usr/bin
-/bin
-/usr/sbin
-/sbin
-/opt/X11/bin
-/usr/local/share/dotnet
-/usr/local/go/bin
-/Users//.rbenv/bin
-/Users//.rbenv/垫片
-/Users//.rbenv/垫片
-/Users//.rbenv/bin
-/Library/Frameworks/Python.framework/Versions/3.6/bin
-/usr/local/bin
-/usr/bin
-/bin
-/usr/sbin
-/sbin
-/usr/local/go/bin
-/usr/local/share/dotnet
-/opt/X11/bin
-/Users//.rbenv/bin
-/Users//.rbenv/垫片
-/bin

不确定为什么我的$PATH中有这么多重复项,但可能是因为我的bash_配置文件。

看起来您的路径设置加载的是系统ruby,而不是rbenv ruby

尝试从.bash_配置文件中删除这一行,因为您不想使用system ruby,而是使用RBENV的版本

/usr/local/opt/ruby/bin
如果这不起作用,我不知道为什么路径中会有如此多的重复项,可能是多次尝试使用RBENV造成的

我建议首先重新安装RBENV。您首先需要执行以下操作:

grep rbenv ~/.bashrc ~/.bash_profile ~/.zshrc /etc/profile /etc/profile.d/*
删除可能包含RBENV的文件中与RBENV相关的所有行

移除rbenv

rm -rf ~/.rbenv 
如果使用自制软件安装rbenv,则

brew uninstall rbenv
然后
brew doctor
,查看是否报告了其他问题

关闭所有正在运行的终端,然后打开一个新的终端。然后再次检查
gem env
,您应该会看到一个更干净的状态,与RBENV无关,只有您的系统ruby

或者,如果您愿意,您可以先尝试RVM,这样做,请参见

之后您可能需要重新启动终端,然后转到中间人项目文件夹并运行

bundle install

请发布
gem env
的输出以及您使用的MacOS版本?我在编辑中添加了它们。您建议使用RVM而不是rbenv的原因是什么?难道我不能尝试编辑指向rbenv ruby的路径吗?我将路径中的
/usr/local/opt/ruby
更改为
~/.rbenv/versions/2.6.1
,gem安装现在成功运行!我会将您的答案标记为正确,但您可能需要编辑它。@成吉思汗我更新了我的答案,很高兴它为您指出了正确的方向并使其正常工作。但您可能不想在配置文件中特别选择版本,让RBENV来选择