Не удается установить драгоценный камень Commonmarker (необходим для jekyll) macos

#ruby #macos #rubygems #jekyll #bundler

#ruby #macos #rubygems #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
  

Комментарии:

1. Это проблема с созданием собственных расширений. Установлены ли у вас Xcode и надстройка командной строки с принятым лицензионным соглашением?

2. github-pages was resolved to 1, which depends on Ruby (~> 1.9.3) еще одна серьезная проблема. версия 1 была выпущена в 2013 году — используйте более новую версию gem.

3. /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 в моем случае universal-darwin19 не существовало, но universal-darwin20 было. Создайте символическую ссылку на universal-darwin20 с именем universal-darwin19

Ответ №1:

Комментарии Сэма верны. Платформа ruby в XCode не работает. Обходной путь заключается в создании символической ссылки:

 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
  

С помощью этого я смог успешно создать все собственные расширения.

Примечание: Вы должны изменить свой сегмент пути MacOSX11.1.sdk в соответствии с вашей локальной установкой Xcode SDK.

Комментарии:

1. Это правильно, но должно быть 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

2. ^ universal-darwin19 написан с ошибкой в исходном ответе

3. Исправлена опечатка, спасибо, что указали на это.

4. Работает, с небольшим изменением в macOS Monterey: cd в MacOSX13.1.sdk вместо: cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ и затем запускается sudo ln -sf universal-darwin22 universal-darwin21 (без sudo это не работает).

Ответ №2:

Для тех, кто работает на 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 сегмент в пути.

Комментарии:

1. Этот ответ сработал для меня вместо приведенного выше из-за создания символической ссылки. Цель ожидала, universal-darwin21 но только universal-darwin19 существовала. MacOSX10.15.sdk

Ответ №3:

У меня была такая же проблема с другим драгоценным камнем; я обнаружил, что

/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, но попробуйте обновить ее до более новой версии (например, brew upgrade ruby если вы используете Homebrew).

Ответ №4:

Мне также нужна была символическая ссылка, но моя установка 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
  

Ответ №5:

путь к компакт-диску, подобный ошибке вашего журнала /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. поддержка gem для него