Commonmarker gem cannot be installed (needed for jekyll) macos
what do I have to do, is there a problem with dependencies? How do I fix those? I am on catalina.
I repeatedly get this error and have already looked for the directory.. doesn't exist.
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
Solution 1:
Sam's comments are correct. XCode's ruby framework is broken. A workaround is to make a symbolic link:
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
With this, I was able to successfully build all the native extensions.
Note: You should change your path segment MacOSX11.1.sdk
according to your local Xcode SDK installation.
Solution 2:
I had this same problem with a different gem; I found that
/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
didn't exist, but
/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
did exist - i.e. universal-darwin20
rather than universal-darwin19
.
If I ran my install command using a newer version of Ruby, it worked.
Exactly how to do this will differ for different setups. I was using rbenv, so ran rbenv local 2.6.6
before the install command.
You can read more about running multiple Ruby versions here, or you could just run a single Ruby version but try upgrading it to a newer version (e.g. brew upgrade ruby
if you're using Homebrew).