2015-08-01 2 views
0

Я установил Rails 4.2.3 на Mac OS X Yosemite, но когда я пытаюсь запустить сервер, я получаю сообщение об ошибкерельсы: установить nokogiri не работает на Mac OSX Yosemite

Companys-MacBook-Pro:App MyUser$ rails server 
Could not find nokogiri-1.6.1 in any of the sources 
Run `bundle install` to install missing gems. 
Companys-MacBook-Pro:App MyUser$ 

поэтому я попытался это

sudo gem install nokogiri -v=1.6.1 

тогда я получил эти ошибки

Companys-MacBook-Pro:~ MyUser$ sudo gem install nokogiri -v=1.6.1 
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/2.0/usr/bin/ruby extconf.rb 
Extracting libxml2-2.8.0.tar.gz into tmp/x86_64-apple-darwin14.4.0/ports/libxml2/2.8.0... OK 
Running 'configure' for libxml2 2.8.0... OK 
Running 'compile' for libxml2 2.8.0... OK 
Running 'install' for libxml2 2.8.0... OK 
Activating libxml2 2.8.0 (from /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.1/ports/x86_64-apple-darwin14.4.0/libxml2/2.8.0)... 
Extracting libxslt-1.1.26.tar.gz into tmp/x86_64-apple-darwin14.4.0/ports/libxslt/1.1.26... OK 
Running 'configure' for libxslt 1.1.26... OK 
Running 'compile' for libxslt 1.1.26... OK 
Running 'install' for libxslt 1.1.26... OK 
Activating libxslt 1.1.26 (from /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.1/ports/x86_64-apple-darwin14.4.0/libxslt/1.1.26)... 
checking for libxml/parser.h... yes 
checking for libxslt/xslt.h... yes 
checking for libexslt/exslt.h... yes 
checking for iconv_open() in iconv.h... no 
checking for iconv_open() in -liconv... yes 
checking for xmlParseDoc() in -lxml2... no 
----- 
libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. 
----- 
*** 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 
--without-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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/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-pkg-config 
--without-pkg-config 
--with-libiconv-config 
--without-libiconv-config 
--with-pkg-config 
--without-pkg-config 
--with-iconvlib 
--without-iconvlib 
--with-xml2lib 
--without-xml2lib 


Gem files will remain installed in /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.1 for inspection. 
Results logged to /Library/Ruby/Gems/2.0.0/gems/nokogiri-1.6.1/ext/nokogiri/gem_make.out 
Companys-MacBook-Pro:~ MyUser$ 

затем я следовал инструкциям на сайте nokogiri установить LibXSLT, libxm l2 и libiconv

Companys-MacBook-Pro:~ MyUser$ brew install libxml2 
Warning: libxml2-2.9.2 already installed 
Companys-MacBook-Pro:~ MyUser$ brew install libxslt 
Warning: libxslt-1.1.28_1 already installed 
Companys-MacBook-Pro:~ MyUser$ brew install libiconv 
Error: No available formula for libiconv 
==> Searching formulae... 
==> Searching taps... 
Companys-MacBook-Pro:~ MyUser$ 

и все еще не повезло. Я также попытался

Companys-MacBook-Pro:~ MyUser$ sudo gem install nokogiri 
Building native extensions. This could take a while... 
Successfully installed nokogiri-1.6.6.2 
Parsing documentation for nokogiri-1.6.6.2 
unable to convert "\xCA" from ASCII-8BIT to UTF-8 for lib/nokogiri/nokogiri.bundle, skipping 
1 gem installed 
Companys-MacBook-Pro:~ MyUser$ 

но рельсы сервер не запускается, поскольку он требует nokogiri 1.6.1

Companys-MacBook-Pro:App MyUser$ rails server 
Could not find nokogiri-1.6.1 in any of the sources 
Run `bundle install` to install missing gems. 
Companys-MacBook-Pro:App MyUser$ 

Каждый имеет представление о том, что здесь происходит?

EDIT 1 Я действительно запускал установку пакета и все еще ту же проблему; Это выход

Companys-MacBook-Pro:App MyUser$ bundle install 
Fetching gem metadata from http://rubygems.org/............ 
Fetching version metadata from http://rubygems.org/... 
Fetching dependency metadata from http://rubygems.org/.. 
Resolving dependencies... 
Using rake 0.9.2.2 
Using multi_json 1.0.3 
Using activesupport 3.1.0 
Using bcrypt-ruby 3.0.0 
Using builder 3.0.0 
Using i18n 0.6.0 
Using activemodel 3.1.0 
Using erubis 2.7.0 
Using rack 1.3.2 
Using rack-cache 1.0.3 
Using rack-mount 0.8.3 
Using rack-test 0.6.1 
Using hike 1.2.1 
Using tilt 1.3.3 
Using sprockets 2.0.0 
Using actionpack 3.1.0 
Using mime-types 1.16 
Using polyglot 0.3.2 
Using treetop 1.4.10 
Using mail 2.3.0 
Using actionmailer 3.1.0 
Using arel 2.2.1 
Using tzinfo 0.3.29 
Using activerecord 3.1.0 
Using activeresource 3.1.0 
Using addressable 2.3.6 
Using bundler 1.10.6 
Using coderay 1.0.8 
Using coffee-script-source 1.1.2 
Using execjs 1.2.4 
Using coffee-script 2.2.0 
Using rack-ssl 1.3.2 
Using rdoc 3.9.4 
Using thor 0.14.6 
Using railties 3.1.0 
Using coffee-rails 3.1.0 
Using crack 0.3.1 
Using diff-lcs 1.1.3 
Using multipart-post 1.2.0 
Using faraday 0.7.6 
Using git 1.2.6 
Using hashie 1.2.0 
Using oauth2 0.5.2 
Using github_api 0.4.10 
Using highline 1.6.21 
Using mini_portile 0.5.3 
Installing nokogiri 1.6.1 with native extensions 

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

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb --with-xml2-dir=/usr --with-xslt-dir=/opt/local --with-iconv-dir=/opt/local 
Extracting libxml2-2.8.0.tar.gz into tmp/x86_64-apple-darwin14.4.0/ports/libxml2/2.8.0... OK 
Running 'configure' for libxml2 2.8.0... OK 
Running 'compile' for libxml2 2.8.0... OK 
Running 'install' for libxml2 2.8.0... OK 
Activating libxml2 2.8.0 (from /private/var/folders/x4/01wntm8j66lf6mwbtmg8t3lm0000gn/T/bundler20150801-30338-1m943xrnokogiri-1.6.1/gems/nokogiri-1.6.1/ports/x86_64-apple-darwin14.4.0/libxml2/2.8.0)... 
Extracting libxslt-1.1.26.tar.gz into tmp/x86_64-apple-darwin14.4.0/ports/libxslt/1.1.26... OK 
Running 'configure' for libxslt 1.1.26... OK 
Running 'compile' for libxslt 1.1.26... OK 
Running 'install' for libxslt 1.1.26... OK 
Activating libxslt 1.1.26 (from /private/var/folders/x4/01wntm8j66lf6mwbtmg8t3lm0000gn/T/bundler20150801-30338-1m943xrnokogiri-1.6.1/gems/nokogiri-1.6.1/ports/x86_64-apple-darwin14.4.0/libxslt/1.1.26)... 
checking for libxml/parser.h... no 
----- 
libxml2 is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies. 
----- 
*** 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 
--without-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=/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/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 
--with-iconv-include 
--without-iconv-include=${iconv-dir}/include 
--with-iconv-lib 
--without-iconv-lib=${iconv-dir}/lib 
--with-xml2-dir 
--with-xml2-include 
--without-xml2-include=${xml2-dir}/include 
--with-xml2-lib 
--without-xml2-lib=${xml2-dir}/lib 
--with-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-pkg-config 
--without-pkg-config 
--with-libiconv-config 
--without-libiconv-config 
--with-pkg-config 
--without-pkg-config 


Gem files will remain installed in /var/folders/x4/01wntm8j66lf6mwbtmg8t3lm0000gn/T/bundler20150801-30338-1m943xrnokogiri-1.6.1/gems/nokogiri-1.6.1 for inspection. 
Results logged to /var/folders/x4/01wntm8j66lf6mwbtmg8t3lm0000gn/T/bundler20150801-30338-1m943xrnokogiri-1.6.1/gems/nokogiri-1.6.1/ext/nokogiri/gem_make.out 
An error occurred while installing nokogiri (1.6.1), and Bundler cannot continue. 
Make sure that `gem install nokogiri -v '1.6.1'` succeeds before bundling. 
Companys-MacBook-Pro:App MyUser$ 
+0

У вас есть nokogiri, указанный в вашем Gemfile? Если не добавить его, и если да, то какую версию он указывает? – xkickflip

+0

Спасибо @xkickflip за ваш быстрый ответ. Я добавил «gem« nokogiri »,« ~> 1.6.1 »в Gemfile и запустил« bundle install », но у меня все еще такая же проблема. – rh4games

+0

Есть ли другой Gem специально в зависимости от 1.6.1? Он будет указан как зависимость в Gemfile.lock. Вы можете попробовать обновить этот камень до более новой версии, которая будет работать с nokogiri 1.6.6.2 (если такая версия существует), поскольку она уже установлена ​​для вас. – xkickflip

ответ

0

Одна из проблем в том, что вы вручную устанавливать Nokogiri 1.6.6.2, но не включая запись nokogiri драгоценный камень в вашем Gemfile. Bundler будет специально показывать ваше приложение только драгоценные камни, перечисленные в файле.

Мне было непонятно, если бы вы были привязаны к nokogiri 1.6.1, потому что это была зависимость от другого драгоценного камня. Если бы существовала еще одна жемчужина, призывающая к 1.6.1, то вы бы исследовали более новую версию этого драгоценного камня, которая, надеюсь, зависела от новых Нокигири. bundle update <othergem> попытается это сделать.

Просто хотел быть ясным, что я не предлагал изменять зависимости другого драгоценного камня в вашем файле блокировки, поскольку они были установлены по определенной причине автором этого драгоценного камня.

Поскольку вы изначально указали gem 'nokogiri', '~> 1.6.1' в своем Gemfile, вы были заблокированы этим после установки первого пакета. bundle update nokogiri попытается обновить вас до последней версии. Или вручную измените Gemfile на 1.6.6.2 или более свободно ~> 1.6 или 1.6.6.

Кроме того, как @ Tin Man, упомянутый при использовании sudo install для установки драгоценных камней в систему Apple, рубин - не лучший способ. Я определенно рекомендую использовать один из менеджеров версии Ruby, таких как RVM или rbenv, как он связал в своем комментарии.

+1

Спасибо @xkickflip за разъяснения. Я не выбрал 1.6.1, но когда я попытался запустить сервер, он говорил: «Не удалось найти nokogiri-1.6.1 в любом из источников». В то время, когда я запускал «bundle install», это ничего не меняло, потому что у Gemfile не было записи для nokogiri. Я добавил его после вашего 1-го комментария, но Gemfile.lock все еще указывал на 1.6.1. После того как я изменил их оба на 1.6.6.2, все работало нормально. Спасибо за помощь. – rh4games

Смежные вопросы