【问题标题】:Commonmarker gem cannot be installed (needed for jekyll) macos无法安装 Commonmarker gem(jekyll 需要)macos
【发布时间】:2020-12-23 00:43:10
【问题描述】:

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

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

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

【问题讨论】:

  • 构建原生扩展是个问题。您是否安装了 Xcode 和命令行插件并接受 EULA?
  • github-pages was resolved to 1, which depends on Ruby (~> 1.9.3) 是另一个主要问题。版本 1 于 2013 年发布——使用较新版本的 gem。

标签: ruby macos rubygems jekyll bundler


【解决方案1】:

Sam 的 cmets 是正确的。 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

有了这个,我能够成功构建所有的原生扩展。

注意:您应该根据本地 Xcode SDK 安装更改路径段 MacOSX11.1.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 universal-darwin20 universal-darwin19
  • ^universal-darwin19 在原始答案中拼写错误
  • 修正错字,谢谢指出。
【解决方案2】:

我在使用不同的 gem 时遇到了同样的问题;我发现了

/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 运行我的安装命令,它就可以工作。

具体如何做到这一点会因不同的设置而异。我使用的是rbenv,所以在安装命令之前运行rbenv local 2.6.6

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

【讨论】:

    【解决方案3】:

    对于那些在 MacOS 上没有 XCode 并且只安装了命令行工具的用户:

    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
    

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

    【讨论】:

      【解决方案4】:

      我还需要一个符号链接,但我的 ruby​​ 安装在不同的位置(/Library/Developer/.../Applications/Xcode.app/...),因此,我用来修复本地 github-pages 安装的命令是:

      cd /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/
      
      sudo ln -sf universal-darwin19 universal-darwin20
      

      【讨论】:

        【解决方案5】:

        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

        复制文件夹并将universal-darwin20重命名为universal-darwin19

        现在它正在工作。
        您可以尝试更高版本的 ruby​​ 或 rails。对它的宝石支持

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-12-01
          • 1970-01-01
          • 2017-06-02
          • 2017-01-29
          • 2017-02-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多