Bundle Install / TheRubyRacer gem 无法安装在 MacOS Catalina 10.15.2 上

Bundle Install / TheRubyRacer gem cannot be installed on MacOS Catalina 10.15.2

我厌倦了尝试捆绑安装和安装 therubyracer 时的错误。 我已经尝试了网络上的所有内容,但没有任何帮助。 已经安装了 libv8 和 x-code 安装程序。 感谢您的帮助!

命令 sudo gem install therubyracer -v '0.12.3' 后,我收到错误:

    ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.6.0/gems/therubyracer-0.12.3/ext/v8
/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 ./siteconf20191219-41979-115mu26.rb extconf.rb
checking for -lpthread... yes
checking for -lobjc... yes
checking for v8.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/$(RUBY_BASE_NAME)
    --with-pthreadlib
    --without-pthreadlib
    --with-objclib
    --without-objclib
    --enable-debug
    --disable-debug
    --with-v8-dir
    --without-v8-dir
    --with-v8-include
    --without-v8-include=${v8-dir}/include
    --with-v8-lib
    --without-v8-lib=${v8-dir}/lib
/Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/ext/libv8/location.rb:50:in `configure': By using --with-system-v8, you have chosen to use the version  (Libv8::Location::System::NotFoundError)
of V8 found on your system and *not* the one that is bundled with
the libv8 rubygem.

However, your system version of v8 could not be located.

Please make sure your system version of v8 that is compatible
with 3.16.14.19 installed. You may need to use the
--with-v8-dir option if it is installed in a non-standard location
    from /Library/Ruby/Gems/2.6.0/gems/libv8-3.16.14.19/lib/libv8.rb:7:in `configure_makefile'
    from extconf.rb:32:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/therubyracer-0.12.3/mkmf.log

extconf failed, exit code 1 ```

我找到了这个错误的解决方案。 如果您对 bundle install 有疑问,请检查:

gem list libv8 --remote --all
gem install libv8 -v 3.16.14.19 -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/Users/YOUR_NAME/homebrew/opt/v8@3.15

经过数小时与我能找到的所有解决方案的斗争后,它对我有用。 希望对大家有所帮助。

我被困在同一个问题上并得到了帮助gist

brew install v8@3.15
gem install libv8 -v 'YOUR_VERSION' -- --with-system-v8
gem install therubyracer -v 'YOUR_VERSION' -- --with-v8-dir=/usr/local/opt/v8@3.15
bundle install

我使用的是 macOS Catalina 版本 10.15.3 和 ruby 版本 2.6.3。希望对您有所帮助!

卸载 v8 并在新的 Catalina 安装上安装 v8@3.15 对我有用。

$ brew uninstall v8
$ brew install v8@3.15

我最近在 Mac OS 10.15.7

遇到了同样的问题
brew install v8-315 
gem install libv8 -v '3.16.14.19' -- --with-system-v 
gem install therubyracer -v '0.12.3' -- --with-system-v8 --with-v8-dir=/usr/local/opt/v8@3.15

注意: 在安装 ruby race 时,只有将两个选项放在一起后才能安装 --with-system-v8 和 --with-v8- dir 并指向该目录。 请在安装前验证该文件夹是否存在于该路径中。