0

Catalina を使用するように Mac を更新しましたが、Jekyll をインストールしようとすると、さまざまな問題が発生します。

これは、通常の grunt セットアップを実行したときに得られるものです。

Running "jekyll:dist" (jekyll) task
>> Error: Command failed: bundle exec jekyll -v
>> bundler: command not found: jekyll
>> Install missing gem executables with `bundle install`
Warning: Please install Jekyll before running this task. Use --force to continue.

それから私は走りますsudo bundle install

次に、これを取得します。

Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this
application for all non-root users on this machine.
Fetching gem metadata from https://rubygems.org/.........
Using public_suffix 3.0.1
Using addressable 2.5.2
Using bundler 2.1.4
Using colorator 1.1.0
Fetching ffi 1.9.18
Installing ffi 1.9.18 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Applications/MAMP/htdocs/hangr/vendor/bundle/ruby/2.6.0/gems/ffi-1.9.18/ext/ffi_c
/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 ./siteconf20201016-30905-1yh2cx1.rb extconf.rb
checking for ffi_call() in -lffi... yes
checking for ffi_prep_closure()... yes
checking for ffi_raw_call()... yes
checking for ffi_prep_raw_closure()... yes
checking for shlwapi.h... no
checking for rb_thread_blocking_region()... no
checking for rb_thread_call_with_gvl()... yes
checking for rb_thread_call_without_gvl()... yes
checking for ffi_prep_cif_var()... yes
creating extconf.h
creating Makefile

current directory: /Applications/MAMP/htdocs/hangr/vendor/bundle/ruby/2.6.0/gems/ffi-1.9.18/ext/ffi_c
make "DESTDIR=" clean

current directory: /Applications/MAMP/htdocs/hangr/vendor/bundle/ruby/2.6.0/gems/ffi-1.9.18/ext/ffi_c
make "DESTDIR="
compiling AbstractMemory.c
compiling ArrayType.c
compiling Buffer.c
compiling Call.c
Call.c:355:5: error: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99
[-Werror,-Wimplicit-function-declaration]
    rbffi_thread_blocking_region(call_blocking_function, data, (void *) -1, NULL);
    ^
./Thread.h:78:39: note: expanded from macro 'rbffi_thread_blocking_region'
# define rbffi_thread_blocking_region rb_thread_call_without_gvl
                                      ^
1 error generated.
make: *** [Call.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Applications/MAMP/htdocs/hangr/vendor/bundle/ruby/2.6.0/gems/ffi-1.9.18 for inspection.
Results logged to
/Applications/MAMP/htdocs/hangr/vendor/bundle/ruby/2.6.0/extensions/universal-darwin-19/2.6.0/ffi-1.9.18/gem_make.out

An error occurred while installing ffi (1.9.18), and Bundler cannot continue.
Make sure that `gem install ffi -v '1.9.18' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  jekyll was resolved to 3.4.3, which depends on
    jekyll-sass-converter was resolved to 1.5.1, which depends on
      sass was resolved to 3.5.5, which depends on
        sass-listen was resolved to 4.0.0, which depends on
          rb-inotify was resolved to 0.9.10, which depends on
            ffi

私が走るとき

ruby -v

私は得る

ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]

何をする必要があるのか​​ まったくわかりません。

私が走るとき

jekyll -v

私は得る

-bash: /usr/local/bin/jekyll: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory

別の投稿からこれを実行しようとしましたが、うまくいきませんでした gem install ffi -v '1.9.18' -- --with-cflags="-Wno-error=implicit-function-declaration"

誰にもアイデアはありますか?

ありがとう

4

1 に答える 1

0

根本的な問題は、jekyl の依存関係の 1 つ、特にffi gemをインストールできないことです。それを知っていると、修正を行うのに役立ちます。

バンドルの出力を読むと、これがエラーであることがわかります。これらの読み方を学んで、将来自分自身をよりよく助けることができるようにしてください。「macOS に ffi をインストールする」を検索していた場合は、より多くの情報を入手できる可能性があります

Catalina をインストールしたばかりだとすると、GCC がマシンにないか、古いか、リンクされていない可能性があります。

xcode-select --install実行して、Xcode コマンド ライン ツールを (再) インストールしてみてください。

また、SUDOの使用をやめる

sudoバンドル出力の一番上に、 gem をインストールするときに使用してはならない警告があります。従うのは良いアドバイスです!

さらに良いアドバイスは、rbenv または rvm を使用して、使用している各 Ruby アプリケーションの gem セットまたは環境を作成することです。ただし、その道をたどらない場合は、**少なくとも、sudoの使用をやめてください**

于 2020-10-16T11:56:44.967 に答える