Як встановити Nokogiri на Mac OS Sierra 10.12


74

У мене проблеми з установкою Nokogiri (1.6.8.1) на Mac OS Sierra 10.12.

Я спробував використати, brew install libxml2 libxsltа потім посилатися на каталоги встановлення, використовуючи параметри командного рядка, але це не допомогло.


При спробі встановити Nokogiri> v1.6.8.1 після встановлення Mac OS Sierra, я виявив, що v1.7.1 матиме проблеми, якщо це перша версія, що встановлюється з цією версією Ruby. Встановлення v1.6.8.1, а потім оновлення за gem update nokogiriдопомогою проміжних версій, поки v1.7.1 не дозволив мені встановити його. Це хак, але спрацював, і як тільки він був встановлений, я не хотів копати більше.
Олов'яна людина,

Відповіді:


181

Відкрийте Xcode і в меню XCode-> Preferencesоновіть інструменти командного рядка (Xcode 8.0).

Тоді зробіть:

bundle config build.nokogiri --use-system-libraries=true --with-xml2-include="$(xcrun --show-sdk-path)"/usr/include/libxml2
bundle install

або просто:

gem install nokogiri -v 1.6.8.1 -- --use-system-libraries=true --with-xml2-include="$(xcrun --show-sdk-path)"/usr/include/libxml2

9
Відповідь NDan простіший
Санджай

Дякую, дійсно корисно
pkrawat1

Нові версії Mac OS вимагають оновлення Xcode, що робить інструменти командного рядка недійсними, тому їх потрібно перевстановити. Nokogiri постачається у комплекті зі своєю власною версією libxml2, яка допомагає у багатьох системах, але іноді дорогоцінній камінці потрібно сказати, де знайти речі. gem насправді буде робити все правильно після оновлення Xcode.
Олов'яна людина,

+1 Чудово! Це також працює, якщо у вас XCode 9.x. Тут вам не потрібно оновлювати інструменти командного рядка; якщо не оновлено, просто відкрийте XCode, і він подбає про це.
gsscoder

2
це спрацювало для мене, тоді як нібито більш проста відповідь, згадана в коментарях, ні
Cpt. Senkfuss

125

Більш простим рішенням є виконання:

xcode-select --install
gem install nokogiri

Оновлення

Для Mojave я використовую gem install nokogiri -v '1.6.6.2' -- --use-system-libraries


2
Це спрацювало для мене. Після оновлення до ОС Sierra, я оновив xcode, а потім nokogiri встановив плавно.
enlego

2
Працюємо в 2017 році! Дякую 👍
Джейк,

1
Насправді вам потрібно або відкрити xcode, і встановити оновлення, або запустити запропонований тут код.
t-my

Дякую, це має горіти в пеклі, але принаймні це, мабуть, це виправить.
Флоріан Хейгл

47

Спробуйте спочатку встановити libxml2 за допомогою Homebrew.

brew install libxml2

Тоді, якщо встановлювати з пакетом

bundle config build.nokogiri --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2
bundle install

При установці безпосередньо з самоцвітом

gem install nokogiri -- --use-system-libraries \
  --with-xml2-include=$(brew --prefix libxml2)/include/libxml2

1
Працював у мене теж на Високій Сьєррі. Дякую!
Клінтон

4
Ого. Ти врятував мій день. Дякую. Я на High Sierra 10.13.3.
Джагдіп Сінгх

11

Це може бути копія gem install nokogiri -v '1.6.8.1' не вдається ... остання прийнята відповідь, яку потрібно було зробити:

brew unlink xz; bundle install; brew link xz

Повторне зв’язування xzможе не знадобитися ... якщо, наприклад, у вас є лише ця залежність через the_silver_searcher(яка безпосередньо пов’язує бібліотеку, що не пов’язана із символами).


11
gem update --system
xcode-select --install
brew unlink xz
gem install nokogiri -v '1.6.8.1'
brew link xz

Якщо вищевказані кроки не вдалося вирішити проблему, мені також вдалося запустити brew doctorта очистити всі незаготовлені файли заголовків.


Це те, що мені вдалося. З якоїсь причини `` оновлення пакета '' не вдалося. Мені довелося встановити nokogiri, як пропонується у цій відповіді.
Нік Канеллопулос

Раніше я встановив Nokogiri всього кілька місяців тому, але змінив версії Ruby і встановлення 1.8.0 не вдалося. Мені вдалося встановити його за допомогою шаблону від’єднання xz / gem isntall (без оновлення каменя або вибору xcode)
SciPhi


1

Для Міддлмена

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


0

Якщо ви раніше встановили nokogiri за допомогою пакета з bundle config build.nokogiri --use-system-librariesцим параметром, він все одно буде там. Якщо ви тим часом вирішили налаштування Xcode (як запропоновано як основний спосіб встановлення в інсталяції nokogiri), ви можете спробувати вилучити цей фрагмент із пакета bundle config --delete build.nokogiriі спробувати зробити це знову bundle install.

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