Ошибка при установке Nokogiri на OSX 10.9 Maverick?


109

Я обновил свой OSX (Lion) до Mavericks и не могу установить Nokogiri для своих проектов.

Я уже установил XCode 5.0.1, Инструменты командной строки (using xcode-select --install) и уже установил libxml2 из Homebrew, и у меня все еще возникают проблемы.

Ошибка:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
checking for libxml/parser.h... *** 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
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
    --with-zlib-dir
    --without-zlib-dir
    --with-zlib-include
    --without-zlib-include=${zlib-dir}/include
    --with-zlib-lib
    --without-zlib-lib=${zlib-dir}/lib
    --with-iconv-dir
    --without-iconv-dir
    --with-iconv-include
    --without-iconv-include=${iconv-dir}/include
    --with-iconv-lib
    --without-iconv-lib=${iconv-dir}/lib
    --with-xml2-dir
    --without-xml2-dir
    --with-xml2-include
    --without-xml2-include=${xml2-dir}/include
    --with-xml2-lib
    --without-xml2-lib=${xml2-dir}/lib
    --with-xslt-dir
    --without-xslt-dir
    --with-xslt-include
    --without-xslt-include=${xslt-dir}/include
    --with-xslt-lib
    --without-xslt-lib=${xslt-dir}/lib
    --with-libxslt-config
    --without-libxslt-config
    --with-pkg-config
    --without-pkg-config
    --with-libxml-2.0-config
    --without-libxml-2.0-config
    --with-libiconv-config
    --without-libiconv-config
/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:452:in `try_cpp'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:853:in `block in find_header'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:276:in `postpone'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for'
    from /Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/mkmf.rb:852:in `find_header'
    from extconf.rb:116:in `<main>'


Gem files will remain installed in /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9 for inspection.
Results logged to /Users/ericcamalionte/Locaweb/code/dns-panel/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.9), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.9'` succeeds before bundling.

Я установил libxml2, libxslt и libiconv из Homebrew и установил параметры для установки Nokogiri, но они тоже не работают.

Я не могу найти, что не так в моей среде, вы можете мне помочь?



2
Попробуйте открыть xcode и примите лицензионное соглашение / лицензию.
moander

Ответы:


245

Вы также можете установить Nokogiri на Mac OS X 10.9 Mavericks с полной установкой XCode, используя:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

Обновить

Для тех, кто использует Yosemite, подойдет следующая команда:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2 --use-system-libraries

или это может быть в вашем MacOSX10.11.sdk любом случае папке (моя была на 18 сентября 2015 года), поэтому, даже если вы еще не полностью освоили El Capitan, я недавно обновил XCode, и вам может потребоваться использовать El Capitan SDK путь, который следует далее:

Обновить

Для тех, кто использует El Capitan, подойдет следующая команда:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

Обновить

Для тех, кто использует Sierra, будет работать следующая команда:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries

4
Не для меня: «libxml2 отсутствует. Посетите nokogiri.org/tutorials/installing_nokogiri.html, чтобы получить помощь по установке зависимостей». По-прежнему возникает такая же ошибка.
Pop-A-Stash

1
Пришлось добавить --use-system-libraries. Затем он работал над новой установкой mavericks с Xcode 5.1.1 и brew.
jmg

11
Пришлось добавить, --use-system-librariesчтобы это заработало:gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 --use-system-libraries
Maverick

1
Это единственное, что подойдет мне в 10.10.3: sudo gem install nokogiri - --with-iconv-lib = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs /MacOSX10.10.sdk/usr/lib --with-iconv-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include - with-xml2-include = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk / usr / include / libxml2 --use-system-libraries
Эрик Виллегас,

10
Вы можете обновить свой ответ с помощью более общей команды, которая должна работать во всех версиях OS X и путях установки Xcode:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Филипп,

30

После перехода анимированных GIF - файлов здесь , все , что я должен был сделать просто xcode-select --installи gem install nokogiriработал отлично.


Спасибо, у меня работает! PS: очень хорошо jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks
Tizón

Дох, да, я пренебрегал установкой инструментов командной строки XCode в моей чистой установке Mavericks.
superluminary

20

Я нашел этот журнал и увидел, что gcc-4.2 не найден:

package configuration for libxslt
cflags: -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2

package configuration for libxml-2.0
cflags: -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2
ldflags: -L/usr/local/Cellar/libxml2/2.9.1/lib
libs: -lxml2

package configuration for libiconv is not found
"/usr/bin/gcc-4.2 -o conftest -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/x86_64-darwin11.4.0 -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1/ruby/backward -I/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/include/ruby-1.9.1 -I. -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2 -I/usr/local/Cellar/libiconv/1.14/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/include -I/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/include -I/Users/ericcamalionte/.rvm/usr/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DNOKOGIRI_USE_PACKAGED_LIBRARIES -DNOKOGIRI_LIBXML2_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0"' -DNOKOGIRI_LIBXSLT_PATH='"/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26"' -I/usr/local/Cellar/libxslt/1.1.28/include -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  -I/usr/local/Cellar/libxml2/2.9.1/include/libxml2  conftest.c  -L. -L/Users/ericcamalionte/.rvm/rubies/ruby-1.9.2-p320/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libiconv/1.14/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -L/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/Users/ericcamalionte/.rvm/usr/lib -L.  -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxml2/2.8.0/lib -Wl,-rpath,/Users/ericcamalionte/.rvm/gems/ruby-1.9.2-p320@dns-panel/gems/nokogiri-1.6.0/ports/x86_64-apple-darwin13.0.0/libxslt/1.1.26/lib -L/usr/local/Cellar/libxslt/1.1.28/lib -L/usr/local/Cellar/libxml2/2.9.1/lib -L/usr/local/Cellar/libxml2/2.9.1/lib     -lxslt -lxml2 -lz -lpthread -liconv -lm -lxml2  -lxml2  -lruby.1.9.1-static  -lpthread -ldl -lobjc  "
sh: /usr/bin/gcc-4.2: No such file or directory
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main() {return 0;}
/* end */

Чтобы решить эту проблему, я установил apple-gcc42 с помощью homebrew brew install apple-gcc42и создал символическую ссылку на мой / usr / bin:

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2


это не решило проблему для меня, у меня все еще то же сообщение об ошибке :(
Дэвид Портабелла,

1
Я полностью удалил rvm и ruby ​​(из brew), установил снова, и все заработало.
Дэвид Портабелла

3
Итак, я просто бегаю brew install apple-gcc42... и просто работает. Эта команда у вас не работает?
squiter 06

4
Я запускал xcode-select --installдо установки brew, и теперь все работает.
Quickredfox

1
@LucyBain Я действительно не помню ... но я думаю, что файл журнала был в том же каталоге, что и gem_meake.out ...
squiter

15

Если вы используете Xcode 5.1, инструменты командной строки не работают для nokogiri 1.6.1. Вам нужно будет загрузить инструменты конца октября 2013 года от Apple . Как только вы это сделаете, запустите

sudo xcode-select -s /Library/Developer/CommandLineTools/

чтобы настроить компьютер для использования инструментов командной строки Xcode 5.0.X, затем запустите

gem install nokogiri

Если вы хотите сбросить инструменты командной строки до версии Xcode.app, запустите

sudo xcode-select -r

Или еще одна вещь, которую вы можете сделать, - это добавить флаг, чтобы игнорировать неизвестные аргументы командной строки. Тогда установка будет выглядеть так:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri

12

Вот что у меня сработало на OSX Mavericks:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri -v '1.6.1' --verbose --no-ri --no-rdoc

Удивительно, но это единственное, что мне помогло во всем протекторе. Спасибо!
KonstantinK

Проблема в том, что использование sudoс RVM или rbenv вызовет проблемы, поскольку root не знает, где находятся изолированные Rubies. Это описано на странице установки RVM . OP использует RVM, и sudoэто приведет к установке Nokogiri в Ruby от Apple, а не на пользователя. Так что не делайте этого, если вы НЕ УВЕРЕНЫ, что хотите установить в Ruby от Apple, если вы используете Mac OS, или в системный Ruby, если вы используете другой * nix.
Железный Человек

10

Я использую OSX Mavericks, и моя проблема оказалась плохой установкой Ruby.

Итак, я переустановил Ruby с помощью rvm:

rvm remove ruby 2.0.0p451
rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451

Тогда я смог

gem install nokogiri --no-ri --no-rdoc

Задача решена.


Прохладно. Теперь, когда вы используете rvm на mavericks, попробуйте открыть vim. Ошибка SEGV? Прекрасный.
Тим

Я не смог удалить гемсет, потому что папки не были пустыми, но переустановка гемсета (даже при наличии ошибок) сделала! Это единственное, что у меня сработало!
Оникороси

9

Обычно я предпочитаю работать с системными вещами. Это сработало для меня:

gem install nokogiri -- --with-iconv-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/ --with-iconv-lib=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/

после нескольких часов поиска в Google это было единственное решение, которое сработало для меня, спасибо! : D
Rogerio Chaves

5

Я столкнулся с этой проблемой сразу после установки обновления Mavericks 10.9.5 и обновления инструментов разработчика 10.9 от Apple. Я побежал xcode-select --install, но это не устранило проблему. Затем я открыл XCode, принял eula и вышел из XCode. Это устранило проблему.


3

У меня была эта проблема сегодня на Maverick, вот как я решил проблему:

brew update
brew install libiconv
brew link libiconv

Убедитесь, что вы знаете, что версия libiconv в шахте Cellar ниже была 1.14, затем установите ее, как показано ниже:

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Если вам требуется конкретная версия nokogiri, например -v '1.6.2.1', установите ее как:

gem install nokogiri -v '1.6.2.1' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Nokogiri успешно установлен!


У меня тоже работал над Йосемити. Ни один из приведенных выше ответов не сделал.
MattL

3

Это то же самое, что и сообщение @ thomas_witt, но работает в Mac OS X Sierra:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/libxml2 --use-system-libraries

2

Чтобы установка заработала, мне пришлось изменить пути к файлам в gem installкоманде, чтобы они соответствовали таковым в моей системе. У меня разные версии libxml2 и libiconv и немного другая файловая структура. Команда с моими изменениями выглядит так:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 
                        --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib 
                        --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28 
                        --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                        --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

Я должен был быть очень дотошным с путями к файлам. Мне потребовалось несколько попыток, чтобы правильно составить команды.
darkmoves

Вот ссылка на другое решение проблемы неправильной версии libxml.
darkmoves

2

Для людей, использующих MacPorts , убедитесь, что вы установили libxml2через MacPorts. Затем введите:

bundle config build.nokogiri --use-system-libraries
bundle install

Это должно сработать, у меня сработало без использования полных путей.



2

Вот еще одна ссылка:

system: OS X Yosemite 10.10
rvm: 1.26.10
brew: 0.9.5
ruby: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

У меня ошибка при установке nokogiri

ошибка вроде этого:

.rvm/rubies/ruby-2.2.0-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError)

Сначала вам нужно установить инструменты разработки.

тогда наверное понадобится:

$ xcode-select --install

или если у вас есть ошибка, например

checking for libxml/parser.h... no

Я просто исправляю путь к библиотеке:

gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2
brew install libxml2 libxslt
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

для бандла нужно что-то вроде:

bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.9.2/include/libxml2/libxml --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.2/lib --with-iconv-dir=/usr/local/Cellar/libiconv/1.14/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/
bundle install

2

Это работает для меня

system: OS X Yosemite 10.10
rvm: 1.26.10
ruby: ruby 2.2.1 

Просто запустите ниже две команды

$ xcode-select --install

Он попросит вас загрузить, скажите «да», затем он попросит установить компонент xcode, нажмите «Установить».

Теперь попробуйте установить драгоценный камень с помощью команды ниже

gem install nokogiri --no-ri --no-rdoc

Это работает для меня с вышеуказанной средой.


1

Я столкнулся с той же проблемой для Маврика, и решение было:

xcode-select --install

Однако это не работает, поскольку на странице загрузки Apple для инструмента командной строки этот установщик сейчас не доступен публично.

Итак, если вы хотите иметь инструменты командной строки для Mavricks, вам необходимо иметь платную учетную запись . Только тогда вы сможете его установить. После установки вы не столкнетесь с этой проблемой с Nokogiri.


У меня нет платной учетной записи, и мне были установлены инструменты командной строки. Я установил с помощью терминала, но мой друг установил с помощью этой страницы загрузки, и у него тоже нет платной учетной записи.
squiter

Я согласен с тобой. То же самое происходило со мной до 24 ноября 2013 года. Однако, если вы перейдете на эту страницу сейчас и попытаетесь получить к ней доступ, вы получите эту ошибку. Странно то, что вы входите в систему со своими учетными данными, но при этом вы будете входить в систему как гость. На странице с моей учетной записью я получаю следующее сообщение: Программа для разработчиков Apple Большое предупреждение. Мы не можем обработать ваш запрос. Вернитесь на предыдущую страницу или закройте браузер и повторите запрос. Если вам потребуется помощь, обратитесь в службу поддержки разработчиков Apple.
shinesecret

1

У меня была такая же ошибка при новой установке Mavericks. После оплошности я переименовал свой пакет приложений Xcode в Xcode 5.0.1.app.

Судя по всему, скрипт установки Nokogiri не цитирует свои пути, поэтому пробел в имени файла вызывал всякие проблемы или проблемы. Это не было, пока я не попробовалbrew install libxml2 , ошибка стала очевидной.

Извлеченный урок: пробелы в именах файлов - зло.


1

В моем случае мне пришлось запустить /usr/bin/gcc-4.2 после символьной ссылки. Вы должны принять лицензионное соглашение, иначе оно зависнет.


1

Сообщение об ошибке дает подсказку: The compiler failed to generate an executable file. (RuntimeError)

xcode-select --install # not sure if this is required  
brew install apple-gcc42  
gem install nokogiri  

Вам также может потребоваться заварить установку и связать их:

libxml2 libxslt

1
brew install libxml2 libxslt
gem install nokogiri -- \
    --with-xml2-include=/usr/local/Cellar/libxml2/*/include/libxml2 \
    --with-xml2-lib=/usr/local/Cellar/libxml2/*/lib \
    --with-xslt-dir=/usr/local/Cellar/libxslt/*

1

Для меня ошибка заключалась в том, что gcc (4.2.1, установленный из Homebrew) жаловался, что:

-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

Я решил проблему, заставив только x86_64:

ARCHFLAGS="-arch x86_64" gem install nokogiri 

1

После обновления до Maverick у меня возникла аналогичная проблема. Я использую RVM с Ruby 1.9.2-p320 и пробовал несколько приведенных здесь решений, но ничего не решило проблему.

Затем я перешел на Ruby 2.1.2 и bundle installсразу же установил Nokogiri.


1

Если у кого-то возникла эта проблема на el capitan при использовании Bundler.

Убедитесь, что инструменты командной строки xcode установлены, и запустите это:

bundle config build.nokogiri --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2 --use-system-libraries

1

Я столкнулся с той же проблемой за последние две недели, пытаясь запустить приложение версии rails 3.

Проблема в том, что ваш rvm / rbenv не использует компилятор C.

Используйте эту команду, чтобы rvm взял совместимый компилятор C

CC=gcc rvm install-version

Итак, если вы используете Ruby 1.9.3, используйте его следующим образом

CC=gcc rvm install-1.9.3

Используйте эту команду каждый раз, когда вы не можете связать установку или что-то еще. Эта штука работает на El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7. Надеюсь, это решит проблему.

Я столкнулся с той же проблемой за последние две недели, пытаясь запустить приложение версии rails 3.

Проблема в том, что ваш rvm / rbenv не использует компилятор C.

Используйте эту команду, чтобы rvm взял совместимый компилятор C

CC=gcc rvm install-version

Итак, если вы используете Ruby 1.9.3, используйте его следующим образом

CC=gcc rvm install-1.9.3

Используйте эту команду каждый раз, когда вы не можете связать установку или что-то еще.

Эта штука работает на El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7. Надеюсь, это решит проблему. А также, если у вас уже есть Xcode, а затем вы не получаете те же ошибки при установке любого драгоценного камня, попробуйте это решение.


1

Я добавил сюда свои выводы после того, как столкнулся с этой же проблемой вскоре после обновления: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

Исправить просто эти 2 команды:

xcode-select --install
gem install nokogiri

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


5
Пожалуйста, разместите материал здесь - ссылки могут быть повреждены (см. Руководство)
Джастин

Это помогло мне, хотя я разделяю желание разместить ответ здесь, а не в виде ссылки :)
Ричард

Это то, что считается ответом только для ссылок, который не рекомендуется в Stack Overflow. Вместо того, чтобы размещать ссылку только на свой сайт, также кратко изложите важную информацию в своем ответе. Таким образом, если ссылка портится, как это обычно бывает, ответ по-прежнему будет иметь некоторую ценность.
Железный Человек

0

У меня тоже была эта проблема. Запуск brew doctorпоказал, что у меня была неожиданная версия libiconv в / user / local / lib.

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
    /usr/local/lib/libcharset.1.dylib
    /usr/local/lib/libiconv.2.dylib

Поэтому я удалил их и обновил libxml:

rm  /usr/local/lib/libiconv*
andromeda:nokogiri-1.6.0 Jeff$ brew install libxml2 libxslt
...
==> Summary
🍺  /usr/local/Cellar/libxslt/1.1.28: 145 files, 3.3M, built in 36 seconds

Наконец, я установил нокогири:

Jeff$ gem install nokogiri
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.0
1 gem installed

у меня была аналогичная проблема (несвязанный libiconv). Я отключил libiconv и переустановил. brew install libiconv, затем gem install nokogirl.
Бен

0

Ни один из этих ответов не работал в моем конкретном случае, и, поскольку я новичок, я подумал, что мое решение может помочь кому-то другому.

Я использую Yosemite и Ruby 1.9.3p547. Была уязвимость для безопасности p547, поэтому я пытался обновиться до Ruby 1.9.3p550 или выше. Я использовал RVM, затем попытался перенести свои драгоценные камни, но многие из них не прошли. Затем я попытался связать установку, но это не удалось, и я подумал, что, может быть, это конфликт между различными путями и зависимостями, поэтому я удалил старую версию Ruby. Это все сломало.

Я продолжал получать сообщение о том, что компилятор C отсутствует, хотя я скачал XCode и недавно обновил инструменты CLI. Я нашел другой веб-сайт, который велел мне загрузить сторонний GCC, что я и сделал. что сделало все еще хуже.

Теперь я получаю сообщение о том, что мне нужно исправить мои профили и PATH, или, возможно, будет проще переустановить OSX. Так я и сделал.

В любом случае, более длинная история просто длинная: решение, которое наконец сработало для меня, заключалось в том, чтобы избавиться от RVM и просто использовать brew для загрузки версии Ruby, которую я хотел тогда, перед запуском bundle install. Установите правильную версию Nokogiri FIRST.

brew install ruby193
sudo gem install nokogiri -v '1.6.0'
bundle install

Использование sudoприведет к установке Nokogiri в единственном Ruby, известном под root, который, скорее всего, будет установленным Apple Ruby, если не используется Homebrew. Поскольку OP использовал RVM, это означает, что Nokogiri не будет виден Ruby, управляемым RVM, и только усугубит проблему. sudoВ этом случае использование могло бы сработать, но его не следует пытаться использовать с Ruby, управляемым RVM или rbenv. RVM специально говорит не делать этого в документации по установке .
Железный Человек

0

для Windows вы также можете попробовать локальную установку:

  1. загрузите соответствующий гем в зависимости от вашей среды.

  2. перейдите в каталог, в котором вы сохранили гем-файл.

  3. gem install --local nokogiri-1.6.3.1-x86-mingw32.gem

если не работает, вы можете проверить, установлены ли у вас zlib и mingw или соответствующий компилятор c.


0

Каждая чертова штука здесь не сделала этого для меня (я не влезал в переустановки brew, ой), но это, наконец, сработало (обнаружено через отчет об ошибке в каком-то несвязанном проекте):

gem install nokogiri -- --use-system-libraries=true --with-xml2-include=/usr/include/libxml2

Удачи. Ура за #yakshaving!


-3

Проверьте свою версию инструментов командной строки. Настройте свой компьютер для использования инструментов командной строки Xcode 5.0.X, затем запустите:

gem install nokogiri

вы должны использовать эту команду. открыть терминал. и напишите эту команду. экспорт NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Дурул Далканат
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.