Установите Nokogiri без пакета разработчика Apple (Xcode) - PullRequest
0 голосов
/ 06 февраля 2011

Я пытаюсь установить Nokogiri на компьютер, на котором не установлен пакет разработки Apple.

Мне нужно иметь возможность устанавливать nokogiri в фоновом режиме без прав администратора. Due Nokogiri - это часть скрипта, которую я хочу установить на любой компьютер с OS X 10.5+.

Я пытался запустить это.

gem install nokogiri

И получил это.

WARNING:  Installing to ~/.gem since /Library/Ruby/Gems/1.8 and
      /usr/bin aren't both writable.
WARNING:  You don't have /Users/linus/.gem/ruby/1.8/bin in your PATH,
      gem executables will not run.
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h


Gem files will remain installed in /Users/linus/.gem/ruby/1.8/gems/nokogiri-1.4.4 for inspection.
Results logged to /Users/linus/.gem/ruby/1.8/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out

Я нашел это после некоторого поиска.

Apple отправляет заголовки для фреймворков с Xcode, а не с ОС. Потому что я обновил после установки XCode Мне пришлось переустановить XCode, чтобы получить Рубиновые заголовки. Xcode поставляется на установить DVD, вы можете найти его в Необязательно Каталог установки.

1 Ответ

3 голосов
/ 06 февраля 2011

Nokogiri использует libxml2, который является стандартным синтаксическим анализатором XML. Чтобы получить доступ к libxml2, он должен использовать библиотеку C и связать некоторый интерфейсный код, чтобы склеить интерфейс Ruby от Nokogiri с C libxml2, в который входит XCode от Apple.

XCode предоставляет необходимый компилятор, компоновщик, файлы заголовков, make ... другими словами, все необходимое для его работы.

Теперь, теоретически, можно собрать Nokogiri на одном Mac, на котором установлен XCode, а затем скопировать получившийся драгоценный камень на другой Mac, при условии, что все остальное будет таким же, как версия Ruby и версия libxml2. Это не обычный способ, которым мы работаем на Mac или Unix-системах, поэтому вы смело идете туда, куда большинству из нас не нужно было идти, включая меня, поэтому вы можете задать свой вопрос на Nokogiri-Talk mail list , где разработчики могут вам помочь. Они точно будут знать, какие части нужно скопировать, и где они должны быть установлены, чтобы все работало так, как вы хотите.

Примечание о XCode: версия на DVD, поставляемая со Snow Leopard, содержит ошибки, поэтому ее не следует использовать. Вместо этого загрузите версию с сайта разработчика Apple XCode . Требуется вход в систему, но регистрация бесплатна.

Альтернативой, которая не требует никакой компиляции или XCode, является использование анализатора Ruby ReXML XML. Он включен по умолчанию в Ruby. Он не поддерживает все вкусности Нокогири, но он уже есть.

...