安装jekyll出错:错误:构建本地扩展宝石失败。

12

我使用Github和Jekyll搭建博客,尝试在本地(Windows 10)安装Jekyll。但是当我运行gem install jekyll时失败了,错误信息如下:

C:\Developments\FrontEnd\rubygems-2.7.7>gem install jekyll
Temporarily enhancing PATH for MSYS/MINGW...
Building native extensions. This could take a while...
ERROR:  Error installing jekyll:
        ERROR: Failed to build gem native extension.

    current directory: C:/Developments/FrontEnd/Ruby25-x64/lib/ruby/gems/2.5.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
C:/Developments/FrontEnd/Ruby25-x64/bin/ruby.exe -r ./siteconf20180806-33956-l8y76h.rb extconf.rb
creating Makefile

current directory: C:/Developments/FrontEnd/Ruby25-x64/lib/ruby/gems/2.5.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
make "DESTDIR=" clean
'make' is not recognized as an internal or external command,
operable program or batch file.

current directory: C:/Developments/FrontEnd/Ruby25-x64/lib/ruby/gems/2.5.0/gems/http_parser.rb-0.6.0/ext/ruby_http_parser
make "DESTDIR="
'make' is not recognized as an internal or external command,
operable program or batch file.

make failed, exit code 1

我的操作步骤如下: 1. 安装了 ruby,设置了路径变量,版本为:ruby 2.5.1p57 (2018-03-29 revision 63029) [x64-mingw32]。 2. 安装了 rubygems,版本为:2.7.7。 3. 安装了 MSYS2。 4. 安装 jekyll,使用命令 gem install jekyll,但出现了上述错误,原因不明。

我尝试过安装 devkit,但没有成功,我想可能是因为我的 ruby 版本是 2.5+,所以不需要 devkit,于是我将其卸载了。

有人能帮我吗?


  1. 安装 C 扩展 gem 仍需要 Ruby 2.5+ 的 devkit(根据这个问题,怀疑您没有独立设置 MSYSMingW)。不确定为什么您会认为在 2.5+ 中不需要它。
  2. RubyGems 已经与 Ruby 打包在一起,您不需要安装它。
- ForeverZer0
他们确实为Windows安装程序制作了不包括DevKit的单独下载,但这几乎是必需品。能够使用大部分极受欢迎的宝石非常重要。 - ForeverZer0
@ForeverZer0,你能把这个答案加到回答里面吗?这样我就可以接受你的答案了。 - Rollsbean
没问题,我已经为你发布了一篇帖子 :) - ForeverZer0
安装静态网站生成器应该只需要几秒钟。在Windows上安装Jekyll需要半个小时或更长时间,并且需要解决问题。很遗憾这样一个毫无意义的超级庞大的东西成为了GitHub的选择并仍然是如此。 - citykid
显示剩余2条评论
4个回答

10
尽管在Windows上,RubyInstaller将Ruby+DevKit作为“可选”下载,但是如果您计划安装gems,它几乎是必需的。大多数最受欢迎的gems都是C扩展,安装时需要在您的计算机上构建。
DevKit是一个方便的工具链,可以自动提供完成此操作所需的所有内容,而无需您进行任何其他操作,仅需键入gem install XXXXX即可。如果没有它,您将无法使用C扩展gems,或者必须已经安装了MSYSMingW,并对它们进行正确配置,这对于那些熟悉该过程的人来说也不是用户友好的体验。
因此,即使DevKit是可选的,它仍然是在Windows上充分利用Ruby所必需的。

4
重新安装 ruby,使用 rubyinstaller-devkit-2.5.5-1-x64 版本,并执行以下命令:
gem install bundler

gem install jekyll

3

我收到了相同的错误信息,原来罪魁祸首是 ffi gem。通过使用这个解决方案,我解决了该问题。


0

我遇到了同样的问题。我能够通过以下方式解决它(在 Windows 11 x64 上):

winget install -e --id RubyInstallerTeam.RubyWithDevKit

(即重新安装带有DevKit的Ruby)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接