Помилка установки Nokogiri на OSX 10.9 Maverick?


109

Я оновив свій OSX (Лев) до Mavericks, і я не можу встановити Nokogiri для своїх проектів.

Я вже встановив XCode 5.0.1, Інструменти командного рядка (використовую 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 та прийміть ліцензію EULA /.
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, і вам може знадобитися використовувати пакет SDK El Capitan шлях, який слідує далі:

Оновлення

Для тих, хто використовує 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
Довелося додати --useuse-system-library. Тоді він працював над абсолютно новою установкою mavericks з Xcode 5.1.1 і варить.
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
Маверик

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 = / Програми / Xcode.app / Зміст / Розробник / Платформи / 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-library
Ерік Віллегас

10
Ви можете оновити свою відповідь більш загальною командою, яка повинна працювати у всіх версіях ОС X та шляхах встановлення Xcode:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp

30

Після навігації по анімованим GIF тут все, що мені довелося зробити, було просто xcode-select --installі gem install nokogiriдобре працювало.


Дякую, працює для мене! PS: дуже добре jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks
Tizón

Так, я нехтував установкою інструментів командного рядка XCode на моїй чистій програмі Mavericks.
суперлюмінація

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 за допомогою домашньої мови 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


це не вирішило проблему для мене, я все одно маю те саме повідомлення про помилку :(
David Portabella

1
Я повністю видалив rvm та ruby ​​(з самогону), знову встановив, і це спрацювало.
Девід Портабелла

3
Отже, я просто бігаю brew install apple-gcc42.. і просто працює. Ця команда не працює для вас?
сквітер

4
Я побіг xcode-select --installперед установкою заварки і зараз все працює.
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

напрочуд, це єдине, що допомагало мені теж. Дякую!
КостянтинК

Проблема в цьому полягає в тому, що використання sudoRVM або rbenv спричинить проблеми, оскільки root не знає, де живуть пісочні рубіни. Це висвітлено на сторінці встановлення RVM . ОП використовує RVM, і використання sudoможе спричинити встановлення Nokogiri в Apple Ruby, а не користувача. Отже, не робіть цього, якщо ви впевнені, що хочете встановити в Apple Ruby, якщо ви перебуваєте на Mac OS, або в систему Ruby, якщо ви перебуваєте на іншому * nix.
Олов'яна людина

10

Я на OSX Mavericks, і моя проблема виявилася поганою установкою 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/

після того, як гуглити його протягом години, це було єдине рішення, яке працювало на мене, дякую! : D
Роджеріо Чавес

5

Я зіткнувся з цією проблемою одразу після встановлення оновлення Mavericks 10.9.5 та оновлення інструментів для розробників 10.9 від Apple. Я побіг xcode-select --install, але це не виправило проблеми. Потім я відкрив XCode, прийняв еулу і вийшов з XCode. Це вирішило проблему.


3

У мене сьогодні була ця проблема, на Maverick, ось я закінчив вирішити питання:

brew update
brew install libiconv
brew link libiconv

Переконайтеся, що ви знаєте, що версія libiconv в шахті «Підвал» нижче 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

Мені довелося бути дуже прискіпливим до файлів. Мені знадобилося кілька спроб правильно побудувати команди.
темні рухи

Ось посилання на інше рішення проблеми неправильної версії libxml.
темні рухи

2

Для людей, які використовують MacPorts , переконайтеся, що ви встановили libxml2через MacPorts. Потім введіть:

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

Це повинно зробити трюк, працював для мене, не використовуючи повних шляхів.


2

Використовуйте, brew install libxml2 libxsltякщо ви використовуєте Homebrew.


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 із командою нижче

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

Це працює для мене з вищевказаним середовищем.


1

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

xcode-select --install

Однак це не працює, оскільки сторінка завантаження Apple для інструменту командного рядка не має цього інсталятора в публічному доступі.

Отже, якщо ви хочете мати інструменти командного рядка для Mavricks, вам потрібно мати платний рахунок . Тоді тільки ви зможете його встановити. Після його встановлення ви не зіткнетеся з цим питанням з Nokogiri.


У мене немає платного рахунку, і мені було встановлено інструменти командного рядка. Я встановив за допомогою терміналу, але мій друг встановив цю сторінку завантаження, і він також не має платного рахунку.
сквітер

Я погоджуюсь з тобою. Те саме трапилося зі мною до 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

Якщо у когось виникає ця проблема в ел-капітані, використовуйте при цьому 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, рейках 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, рейках 3.2.16, ruby ​​1.9.3, mysql 5.7 Сподіваємось, це вирішить проблему. А також якщо у вас вже є Xcode, а потім ви також не отримуєте однакових помилок при встановленні жодного каменя, спробуйте це рішення.


1

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

Виправлення полягає лише в цих двох командах:

xcode-select --install
gem install nokogiri

Сподіваюся, це допомагає.


5
Будь ласка, опублікуйте тут матеріали - посилання можуть бути порушені (див. Рекомендації)
Джастін

Це допомогло мені, хоча я повторюю почуття опублікування відповіді тут, а не за посиланням :)
Річард

Це те, що вважається відповіддю лише для посилань, яке не рекомендується переповнювати стек. Замість того, щоб розміщувати лише посилання на свій власний сайт, також узагальнюйте важливу інформацію у своїй відповіді. Таким чином, якщо посилання загниє, як вони, як правило, відповідь буде надавати деяку цінність.
Олов'яний чоловік

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

Нарешті, я встановив nokogiri:

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

У мене був аналогічний випуск (незв'язаний libiconv). Я від’єднав libiconv і знову встановив. варити встановити libiconv, потім gem встановити 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 ПЕРШИЙ.

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

Використання sudoзмусить Nokogiri бути встановлений в єдиному Ruby , відомий під корінь, що досить імовірно, буде від Apple встановлений рубін , якщо з допомогою Homebrew. Оскільки ОП використовував RVM, це означає, що Нокогірі не побачив Рубі, яким керував RVM, а лише посилить проблему. Використання, sudoможливо, спрацювало в цьому випадку, але його не слід намагатися з RVM або rbenv, яким керує Ruby. RVM спеціально говорить не робити цього в документації по установці .
Бляшаний чоловік

0

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

  1. завантажте відповідний дорогоцінний камінь залежно від вашого оточення.

  2. перейдіть до каталогу, де ви зберегли файл дорогоцінного каміння.

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

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


0

Кожна кохана річ тут не робила це для мене (я не потрапляв на перевстановлення пива, о, так), але це, нарешті, було зроблено (виявлено через звіт про помилку в якомусь незв'язаному проекті):

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

Удачі. Так, для #yakshaving!


-3

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

gem install nokogiri

ви повинні використовувати цю команду. відкритий термінал. і Напишіть цю команду. експортувати NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.