Не удалось установить gem - extconf.rb не удалось - PullRequest
0 голосов
/ 10 декабря 2018

Я обновил macos до Mojave и переустановил xcode, xcode CLT, ruby ​​и т. Д. Затем, когда я попытался:

gem install nokogiri

Я получил следующую ошибку (установка других драгоценных камней дала похожую ошибку):

ERROR: Failed to build gem native extension.

current directory: /usr/local/lib/ruby/gems/2.5.0/gems/nokogiri-1.8.5/ext/nokogiri
/usr/local/opt/ruby/bin/ruby -r ./siteconf20181209-20884-etfc5r.rb extconf.rb
checking if the C compiler accepts ... *** 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.

Я проверил mkmf.log, который содержит следующее:

"clang -o conftest -I/usr/local/Cellar/ruby/2.5.3_1/include/ruby-2.5.0/x86_64-darwin18 -I/usr/local/Cellar/ruby/2.5.3_1/include/ruby-2.5.0/ruby/backward -I/usr/local/Cellar/ruby/2.5.3_1/include/ruby-2.5.0 -I.  -I/usr/local/opt/libyaml/include -I/usr/local/opt/openssl/include -I/usr/local/opt/readline/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -O3 -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wno-tautological-compare -Wno-parentheses-equality -Wno-constant-logical-operand -Wno-self-assign -Wunused-variable -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wdeprecated-declarations -Wextra-tokens  -fno-common -pipe conftest.c  -L. -L/usr/local/Cellar/ruby/2.5.3_1/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib -L. -fstack-protector -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib     -lruby.2.5.3  -lpthread -ldl -lobjc "
In file included from conftest.c:1:
In file included from /usr/local/Cellar/ruby/2.5.3_1/include/ruby-2.5.0/ruby.h:33:
In file included from /usr/local/Cellar/ruby/2.5.3_1/include/ruby-2.5.0/ruby/ruby.h:29:

Текст продолжался так некоторое время.Я также cd перешел в папку nokogiri и сразу запустил extconf.rb, и получил следующую ошибку:

checking if the C compiler accepts ... *** 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
--with-opt-include

... (пропустил аналогичный контент для краткости и продолжил ниже)

usr/local/Cellar/ruby/2.5.3_1/lib/ruby/2.5.0/mkmf.rb:456:in 'try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.

Я пытался установить xcode.Я также установил шапку и подтвердил лицензию.Сначала я подумал, что это связано с GCC, но файл mkmf показал, что проблема в Clang.

Надеюсь, кто-то может помочь.

1 Ответ

0 голосов
/ 08 февраля 2019

Мне пришлось выполнить следующие загадочные команды, чтобы установить nokogiri.В основном это влечет за собой то, что мой компилятор C работал в Mac OSX Mojave, после того, как все работало нормально в предыдущей ОС (Yosemite, я думаю, что это было ...)

Это (несколько) очевидный шаг при обновлении osx:

xcode-select --install

Мне тоже пришлось это сделать, чего я никогда бы не знал, как обойтись без Google и этого поста

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Наконец-то у меня былосогласиться с лицензией XCode (обнаружил, что я должен был сделать это через журналы makefile, когда установка nokogiri не удалась ...)

sudo xcodebuild -licence

Это побудит вас в конечном итоге напечатать "accept"

Наконец, продолжение работы bundle работает, как и ожидалось, для нового проекта рельсов, который включает в себя nokogiri.Успех!

...