簡體   English   中英

無法安裝 Commonmarker gem(jekyll 需要)macos

[英]Commonmarker gem cannot be installed (needed for jekyll) macos

我該怎么辦,依賴項有問題嗎? 我該如何解決這些問題? 我在卡塔利娜。

我反復收到此錯誤並且已經查找目錄..不存在。

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 的 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

我在使用不同的 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 版本的更多信息,或者您可以只運行一個 Ruby 版本但嘗試將其升級到更新的版本(例如,如果您使用的是 Homebrew,則brew upgrade ruby )。

對於那些在 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段。

我還需要一個符號鏈接,但是我的 ruby​​ 安裝在不同的位置( /Library/Developer/... vs /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

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

並復制並重命名文件夾 copy universal-darwin20universal-darwin19

現在它正在工作。
您可以嘗試更高版本的 ruby​​ 或 rails。 對它的寶石支持

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM