Эта ошибка случилась со мной раньше с гемом nio4r, когда я обновился до Catalina, и @dmitry barskov ответил на нее. Аналогичная проблема возникает сейчас после большого обновления с помощью json, oj и therubyracer (пробовал использовать решение от nio4r, но не повезло). Когда я запускаю gem list
, я вижу, что драгоценные камни установлены, но установить пакет не удается. Итак, я попробовал обновить пакет json oj therubyracer. он работает для json и oj, но для rubyracer выдает ошибки.
ошибка therubyracer - ›
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /Users/me/.gem/gems/therubyracer-0.12.2/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
./siteconf20210106-9670-edtaxk.rb extconf.rb --with-v8-dir\=/usr/local/opt/v8
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
--with-v8-include
--without-v8-include=${v8-dir}/include
--with-v8-lib
--without-v8-lib=${v8-dir}/lib
/Users/me/.gem/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.
ошибка json - ›
/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
./siteconf20210106-29155-126itgi.rb extconf.rb
creating Makefile
current directory: /Users/me/.gem/gems/json-1.8.3/ext/json/ext/generator
make "DESTDIR=" clean
current directory: /Users/me/.gem/gems/json-1.8.3/ext/json/ext/generator
make "DESTDIR="
compiling generator.c
generator.c:861:25: error: use of undeclared identifier 'rb_cFixnum'
} else if (klass == rb_cFixnum) {
^
generator.c:863:25: error: use of undeclared identifier 'rb_cBignum'
} else if (klass == rb_cBignum) {
^
2 errors generated.
make: *** [generator.o] Error 1
make failed, exit code 2
*** LOCAL GEMS ***
bigdecimal (1.2.8)
bundler (1.17.3)
json (1.8.3)
libv8 (3.16.14.17)
oj (2.15.0)
rake (10.4.2)
ref (2.0.0)
therubyracer (0.12.3)
checking for v8.h... no
Я понимаю, что это может быть проблема, поэтому вот что я безуспешно пытался исправить: ›
brew install v8-315
gem uninstall -a libv8
bundle config build.therubyracer --with-v8-dir=$(brew --prefix [email protected])
gem install libv8 -v '3.16.14.17' — —with-system-v8
gem uninstall -a therubyracer
bundle config build.libv8 --with-system-v8
gem install therubyracer -v '0.12.2' -- --with-v8-dir=$(brew --prefix [email protected])
Когда я делаю обновление пакета, оно застревает в разрешении зависимостей .... Я оставил его включенным в течение 12 часов, прежде чем сдаться. Когда я удаляю свой gemfile.lock и запускаю установку пакета, он снова застревает в разрешении зависимостей ...
Я использую сборщик ruby v 2.3.1 версии 1.17.3
Я заметил одну вещь: путь /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby
показывает 2.6.0, но я использую 2.3.1 (подтверждено запуском rbenv local и ruby -v)
Если потребуется какая-либо другая информация, сообщите мне. Любая помощь будет высоко ценится.
rbenv
установленную версию Ruby, но из журналов очень ясно, что используется Ruby вашей системы. В частности, эта строка журнала:--ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/$(RUBY_BASE_NAME)
. Я бы начал с удаления Ruby из rbenv, переустановки его, а затем убедился, что вашbundle
исполняемый файл указывает на ваш установленный rbenv. - person taylorthurlow   schedule 07.01.2021