2017-01-12 3 views
1

(Спасибо maxple за ваш ответ! Это сработало)Rails не удается установить на Sierra

Я пытаюсь установить Rails на MacOS 10.12 (Sierra). Я использую терминал, чтобы установить его с помощью этой команды:

$ sudo gem install rails 

Это производит следующий вывод:

Building native extensions. This could take a while... 
ERROR: Error installing rails: 
    ERROR: Failed to build gem native extension. 

    current directory: /Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/nokogiri-1.7.0.1/ext/nokogiri 
/Users/paullantow/.rbenv/versions/2.2.3/bin/ruby -r ./siteconf20170111-22393-xqzt1j.rb extconf.rb 
checking if the C compiler accepts ... yes 
checking if the C compiler accepts -Wno-error=unused-command-line-argument-hard-error-in-future... no 
Building nokogiri using packaged libraries. 
Using mini_portile version 2.1.0 
checking for iconv.h... yes 
checking for gzdopen() in -lz... yes 
checking for iconv... yes 
************************************************************************ 
IMPORTANT NOTICE: 

Building Nokogiri with a packaged version of libxml2-2.9.4. 

Team Nokogiri will keep on doing their best to provide security 
updates in a timely manner, but if this is a concern for you and want 
to use the system library instead; abort this installation process and 
reinstall nokogiri as follows: 

    gem install nokogiri -- --use-system-libraries 
     [--with-xml2-config=/path/to/xml2-config] 
     [--with-xslt-config=/path/to/xslt-config] 

If you are using Bundler, tell it to use the option: 

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

Note, however, that nokogiri is not fully compatible with arbitrary 
versions of libxml2 provided by OS/package vendors. 
************************************************************************ 
Extracting libxml2-2.9.4.tar.gz into tmp/x86_64-apple-darwin16.3.0/ports/libxml2/2.9.4... OK 
Running 'configure' for libxml2 2.9.4... OK 
Running 'compile' for libxml2 2.9.4... ERROR, review '/Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/nokogiri-1.7.0.1/ext/nokogiri/tmp/x86_64-apple-darwin16.3.0/ports/libxml2/2.9.4/compile.log' to see what happened. Last lines are: 
======================================================================== 
    unsigned short* in = (unsigned short*) inb; 
         ^~~~~~~~~~~~~~~~~~~~~ 
encoding.c:815:27: warning: cast from 'unsigned char *' to 'unsigned short *' increases required alignment from 1 to 2 [-Wcast-align] 
    unsigned short* out = (unsigned short*) outb; 
          ^~~~~~~~~~~~~~~~~~~~~~ 
4 warnings generated. 
    CC  error.lo 
    CC  parserInternals.lo 
    CC  parser.lo 
    CC  tree.lo 
    CC  hash.lo 
    CC  list.lo 
    CC  xmlIO.lo 
xmlIO.c:1450:52: error: use of undeclared identifier 'LZMA_OK' 
    ret = (__libxml2_xzclose((xzFile) context) == LZMA_OK) ? 0 : -1; 
               ^
1 error generated. 
make[2]: *** [xmlIO.lo] Error 1 
make[1]: *** [all-recursive] Error 1 
make: *** [all] Error 2 
======================================================================== 
*** 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=/Users/paullantow/.rbenv/versions/2.2.3/bin/$(RUBY_BASE_NAME) 
    --help 
    --clean 
    --use-system-libraries 
    --enable-static 
    --disable-static 
    --with-zlib-dir 
    --without-zlib-dir 
    --with-zlib-include 
    --without-zlib-include=${zlib-dir}/include 
    --with-zlib-lib 
    --without-zlib-lib=${zlib-dir}/lib 
    --enable-cross-build 
    --disable-cross-build 
/Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mini_portile2-2.1.0/lib/mini_portile2/mini_portile.rb:366:in `block in execute': Failed to complete compile task (RuntimeError) 
    from /Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mini_portile2-2.1.0/lib/mini_portile2/mini_portile.rb:337:in `chdir' 
    from /Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mini_portile2-2.1.0/lib/mini_portile2/mini_portile.rb:337:in `execute' 
    from /Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mini_portile2-2.1.0/lib/mini_portile2/mini_portile.rb:111:in `compile' 
    from /Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/mini_portile2-2.1.0/lib/mini_portile2/mini_portile.rb:150:in `cook' 
    from extconf.rb:364:in `block (2 levels) in process_recipe' 
    from extconf.rb:257:in `block in chdir_for_build' 
    from extconf.rb:256:in `chdir' 
    from extconf.rb:256:in `chdir_for_build' 
    from extconf.rb:363:in `block in process_recipe' 
    from extconf.rb:262:in `tap' 
    from extconf.rb:262:in `process_recipe' 
    from extconf.rb:547:in `<main>' 

To see why this extension failed to compile, please check the mkmf.log which can be found here: 

    /Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-16/2.2.0-static/nokogiri-1.7.0.1/mkmf.log 

extconf failed, exit code 1 

Gem files will remain installed in /Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/nokogiri-1.7.0.1 for inspection. 
Results logged to /Users/paullantow/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-16/2.2.0-static/nokogiri-1.7.0.1/gem_make.out 

Я установил инструменты командной строки XCode (8.21), отсутствие которых является общая причина, которую я видел при поиске других с этой проблемой.

У меня есть несколько версий Ruby, установленных с использованием RVM.

Я также удалил и заново установил homebrew.

Я был бы признателен за любые советы по созданию Rails на моей системе.

+1

если вы используете RVM, вы не должны использовать '' sudo' с гем install'. У вас есть одна «базовая» рубиновая версия, которая поставляется в комплекте на вашем компьютере, назовите ее «системным» рубином. Затем RVM устанавливает другие версии (позволяя вам управлять версиями, как подразумевает Ruby Version Manager), направляя 'gem install' в эти версии. 'sudo gem install' использует версию системы. Это может не решить вашу проблему при установке Nokogiri (общая проблема, я могу добавить), но это стоит знать. –

+0

Кстати, в примечаниях Нокогири об устранении неполадок при установке OSX: http://www.nokogiri.org/tutorials/installing_nokogiri.html#mac_os_x –

+0

Как сказал @mxple, вы никогда не используете sudo при использовании рубинового менеджера версий. В документах [rbenv docs] (https://github.com/rbenv/rbenv#installing-ruby-gems) говорится: _ Вам не нужно sudo для установки драгоценных камней. Как правило, версии Ruby будут установлены и записаны вашим пользователем. Никаких дополнительных привилегий не требуется для установки gems._ Это недостаточно сильный язык. В документах rbenv следует сказать НИКОГДА, КОГДА-ЛИБО, НИКОГДА не используйте sudo. 'libxml' - это зависимость от nokogiri, и это может быть больно для установки, поэтому nokogiri начал включать libxml внутри nokogiri - но у вас возникла проблема с компиляцией libxml nokogiri. Сообщите об ошибке. – 7stud

ответ

1

попробовать:

обновление

камень --system

затем:

Xcode-выберите --install

затем:

камень установить nokogiri

и, наконец, :

установить Рельсы Gem

16

попробовать с помощью

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

+0

Почему это не рынок как правильный ответ? работал на mac Sierra с помощью gem install nokogiri -v 1.7.2. –

+0

Лучше использовать упакованную версию libxml nokogiri, потому что она проверена на совместимость. В инструкциях по сборке указано «Обратите внимание, что nokogiri не полностью совместим с произвольными версиями libxml2, предоставляемыми поставщиками ОС/пакетов». – wizzard

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