无法安装Commonmarker gem(jekyll需要)macos

mar*_*rio 5 ruby macos rubygems bundler jekyll

我该怎么办,依赖关系有问题吗?我该如何解决这些问题?我在卡特琳娜。

我反复收到此错误,并且已经查找了目录.. 不存在。

sudo bundle update
Password:
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies.......
Bundler found conflicting requirements for the Ruby
version:
  In Gemfile:
    github-pages was resolved to 1, which depends on
      Ruby (~> 1.9.3)

jekyll-feed (~> 0.12) was resolved to 0.13.0, which
depends on
      Ruby (>= 2.3.0)

Bundler could not find compatible versions for gem
"commonmarker":
  In Gemfile:
    commonmarker (~> 0.21.0)

    github-pages was resolved to 203, which depends on
jekyll-commonmark-ghpages (= 0.1.6) was resolved
to 0.1.6, which depends on
        commonmarker (~> 0.17.6)
?  blog git:(gh-pages) ? sudo gem install commonmarker
Building native extensions. This could take a while...
ERROR:  Error installing commonmarker:
    ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.6.0/gems/commonmarker-0.21.0/ext/commonmarker
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20200903-9124-19bmbh8.rb extconf.rb
creating Makefile

current directory: /Library/Ruby/Gems/2.6.0/gems/commonmarker-0.21.0/ext/commonmarker
make "DESTDIR=" clean

current directory: /Library/Ruby/Gems/2.6.0/gems/commonmarker-0.21.0/ext/commonmarker
make "DESTDIR="
make: *** No rule to make target `/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin19/ruby/config.h', needed by `arena.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/commonmarker-0.21.0 for inspection.
Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/commonmarker-0.21.0/gem_make.out
Run Code Online (Sandbox Code Playgroud)

Jon*_*hoi 13

山姆的评论是正确的。XCode 的 ruby​​ 框架已损坏。解决方法是创建符号链接:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0
ln -sf universal-darwin20 universal-darwin19
Run Code Online (Sandbox Code Playgroud)

有了这个,我能够成功构建所有本机扩展。

注意:您应该MacOSX11.1.sdk根据您本地的 Xcode SDK 安装更改您的路径段。

  • 这是正确的,但应该是 `cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/ usr/include/ruby-2.6.0 ln -sf 通用-darwin20 通用-darwin19` (2认同)

Par*_*der 6

对于那些使用未安装 XCode且仅安装命令行工具的 MacOS 的用户:

cd /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0
sudo ln -sf universal-darwin20 universal-darwin21
Run Code Online (Sandbox Code Playgroud)

MacOSX11.3.sdk...如果需要的话调整路径中的段。


Sam*_*Sam 4

我在使用不同的宝石时也遇到了同样的问题;我找到

/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin19/ruby/config.h

不存在,但是

/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin20/ruby/config.h

确实存在——即universal-darwin20而不是universal-darwin19

如果我使用较新版本的 Ruby 运行安装命令,它就会起作用。

对于不同的设置,具体如何执行此操作会有所不同。我使用的是rbenvrbenv local 2.6.6 ,所以在安装命令之前运行。

您可以在此处阅读有关运行多个 Ruby 版本的更多信息,或者您可以只运行单个 Ruby 版本,但尝试将其升级到较新的版本(例如,brew upgrade ruby如果您使用的是 Homebrew)。