簡體   English   中英

運行 Jekyll 時出錯 - 未加載庫:/usr/local/opt/ruby/lib/libruby.3.0.dylib (LoadError)

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

我已經在 MacOS Big Sur (11.2.3) 上安裝了 Jekyll,但是在運行jekyll時不斷收到 library not loaded 消息。

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

我已經使用 Homebrew 重新安裝了 jekyll、ruby 和 ffi,現在使用rbenv

我當前的設置是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

這是我在.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"

我將不勝感激任何幫助。 我花了一整天的時間試圖解決這個問題。

解決了這個問題。 顯然,Jekyll 混合了兩個 ruby 安裝或安裝在不同的 gem 文件夾中。 我首先將GEM_PATH添加到.zshrc

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

然后我再次安裝了 Jekyll:

gem install jekyll

暫無
暫無

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

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