Gizat
Gizat

Reputation: 53

Error when running Jekyll – Library not loaded: /usr/local/opt/ruby/lib/libruby.3.0.dylib (LoadError)

I have installed Jekyll on MacOS Big Sur (11.2.3), but keep getting library not loaded message when running jekyll.

<internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': dlopen(/Users/tintin/.gem/ruby/3.0.0/gems/ffi-1.15.0/lib/ffi_c.bundle, 9): Library not loaded: /usr/local/opt/ruby/lib/libruby.3.0.dylib (LoadError)
  Referenced from: /Users/tintin/.gem/ruby/3.0.0/gems/ffi-1.15.0/lib/ffi_c.bundle
  Reason: image not found - /Users/tintin/.gem/ruby/3.0.0/gems/ffi-1.15.0/lib/ffi_c.bundle
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.gem/ruby/3.0.0/gems/ffi-1.15.0/lib/ffi.rb:6:in `rescue in <top (required)>'
    from /Users/tintin/.gem/ruby/3.0.0/gems/ffi-1.15.0/lib/ffi.rb:3:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.gem/ruby/3.0.0/gems/sassc-2.4.0/lib/sassc/native.rb:3:in `<top (required)>'
    from /Users/tintin/.gem/ruby/3.0.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
    from /Users/tintin/.gem/ruby/3.0.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.gem/ruby/3.0.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.gem/ruby/3.0.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll.rb:195:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/exe/jekyll:8:in `<top (required)>'
    from /Users/tintin/.rbenv/versions/3.0.0/bin/jekyll:23:in `load'
    from /Users/tintin/.rbenv/versions/3.0.0/bin/jekyll:23:in `<main>'
<internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require': cannot load such file -- 3.0/ffi_c (LoadError)
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.gem/ruby/3.0.0/gems/ffi-1.15.0/lib/ffi.rb:4:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.gem/ruby/3.0.0/gems/sassc-2.4.0/lib/sassc/native.rb:3:in `<top (required)>'
    from /Users/tintin/.gem/ruby/3.0.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
    from /Users/tintin/.gem/ruby/3.0.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.gem/ruby/3.0.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll/converters/scss.rb:3:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.gem/ruby/3.0.0/gems/jekyll-sass-converter-2.1.0/lib/jekyll-sass-converter.rb:4:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll.rb:195:in `<top (required)>'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from <internal:/Users/tintin/.rbenv/versions/3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:85:in `require'
    from /Users/tintin/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/exe/jekyll:8:in `<top (required)>'
    from /Users/tintin/.rbenv/versions/3.0.0/bin/jekyll:23:in `load'
    from /Users/tintin/.rbenv/versions/3.0.0/bin/jekyll:23:in `<main>'

I've reinstalled jekyll, ruby and ffi using Homebrew and now use rbenv.

My current setup is gem env:

RubyGems Environment:
  - RUBYGEMS VERSION: 3.2.16
  - RUBY VERSION: 3.0.0 (2020-12-25 patchlevel 0) [x86_64-darwin20]
  - INSTALLATION DIRECTORY: /Users/tintin/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0
  - USER INSTALLATION DIRECTORY: /Users/tintin/.gem/ruby/3.0.0
  - RUBY EXECUTABLE: /Users/tintin/.rbenv/versions/3.0.0/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: /Users/tintin/.rbenv/versions/3.0.0/bin
  - SPEC CACHE DIRECTORY: /Users/tintin/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/tintin/.rbenv/versions/3.0.0/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - x86_64-darwin-20
  - GEM PATHS:
     - /Users/tintin/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0
     - /Users/tintin/.gem/ruby/3.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/tintin/.rbenv/versions/3.0.0/bin
     - /usr/local/Cellar/rbenv/1.1.2/libexec
     - /Users/tintin/.gem/ruby/3.0.0/bin
     - /Users/tintin/.rbenv/shims
     - /Users/tintin/Applications/miniconda/bin
     - /Users/tintin/Applications/miniconda/condabin
     - /Users/tintin/Applications/miniconda/bin
     - /Users/tintin/bin
     - /usr/local/bin
     - /usr/local/sbin
     - @HOME/Library/Python/3.7/bin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Library/TeX/texbin
     - /opt/X11/bin

This is what I have at the end of .zshrc:

eval "$(rbenv init -)"

#export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.0.0/bin:$PATH"
#export PATH="$HOME/.gem/ruby/3.0.0/bin:$PATH"

# homebrew required vars
export LDFLAGS="-L/usr/local/opt/libffi/lib"
export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"

export PATH="$HOME/.gem/ruby/3.0.0/bin:$PATH"

I would appreciate any help. I've spent one full day trying to solve the issue.

Upvotes: 2

Views: 4478

Answers (1)

Gizat
Gizat

Reputation: 53

Solved the issue. Apparently, Jekyll mixes up two ruby installations or is installed in a different gem folder. I first added GEM_PATH to .zshrc:

export GEM_PATH="/Users/gizatm/.rbenv/versions/3.0.0/lib/ruby/gems/3.0.0"

Then I installed Jekyll again:

gem install jekyll

Upvotes: 2

Related Questions