Erro ao instalar o Nokogiri no OSX 10.9 Maverick?


109

Eu atualizei meu OSX (Lion) para Mavericks e não consigo instalar o Nokogiri para meus projetos.

xcode-select --installJá instalei o XCode 5.0.1, Command Line Tools (usando ) e já instalei o libxml2 do Homebrew e ainda estou tendo problemas.

O erro é:

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.

Instalei libxml2, libxslt e libiconv do Homebrew e configurei os parâmetros para instalar o Nokogiri, mas também não funcionou.

Não consigo encontrar o que há de errado no meu ambiente, você pode me ajudar?



2
Tente abrir o xcode e aceite o EULA / licença.
moander

Respostas:


245

Você também pode instalar o Nokogiri no Mac OS X 10.9 Mavericks com instalação completa do XCode usando:

gem install nokogiri -- --with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2

Atualizar

Para aqueles que usam Yosemite, o seguinte comando funcionará:

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

ou pode estar na sua MacOSX10.11.sdkpasta (a minha era em 18 de setembro de 2015) de qualquer forma, então, mesmo que você ainda não esteja totalmente preparado para o El Capitan, eu atualizei recentemente o XCode e você pode precisar usar o El Capitan SDK caminho, que segue a seguir:

Atualizar

Para aqueles que usam El Capitan, o seguinte comando funcionará:

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

Atualizar

Para aqueles que usam o Sierra, o seguinte comando funcionará:

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
Não para mim: "libxml2 está faltando. Visite nokogiri.org/tutorials/installing_nokogiri.html para obter ajuda com a instalação de dependências." Ainda obtendo o mesmo erro.
Pop-A-Stash

1
Tive que adicionar --use-system-libraries. Depois disso, funcionou em uma nova instalação independente com o Xcode 5.1.1 e o brew.
jmg

11
Tive que adicionar o --use-system-librariespara fazer isso funcionar: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
Maverick

1
Este é o único que funcionaria para mim, em 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 = / Applications / Xcode.app / Contents / Developer / Platforms / 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-libraries
Erik Villegas

10
Você pode querer atualizar sua resposta com o comando mais genérico que deve funcionar em todas as versões do OS X e caminhos de instalação do Xcode:gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Philipp


20

Encontrei este log e vi que o gcc-4.2 não foi encontrado:

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 */

Para resolver este problema, instalei apple-gcc42 usando homebrew brew install apple-gcc42e criei um link simbólico para meu / usr / bin:

sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc-4.2


isso não resolveu o problema para mim, ainda recebo a mesma mensagem de erro :(
David Portabella

1
Desinstalei completamente o rvm e o ruby ​​(do brew), instalei novamente e funcionou.
David Portabella

3
Então, eu apenas corro brew install apple-gcc42.. e funciona. Esse comando não funciona para você?
squiter

4
Corri xcode-select --installantes da instalação do brew e tudo funciona agora.
Quickredfox de

1
@LucyBain Realmente não me lembro .... mas acho que o arquivo de log estava no mesmo diretório que gem_meake.out ...
squiter

15

Se você estiver executando o Xcode 5.1, as ferramentas de linha de comando não funcionam para o nokogiri 1.6.1. Você precisará baixar as ferramentas do final de outubro de 2013 da Apple . Depois de fazer aquela corrida

sudo xcode-select -s /Library/Developer/CommandLineTools/

para configurar sua máquina para usar as ferramentas de linha de comando Xcode 5.0.X e, em seguida, execute

gem install nokogiri

Se você deseja redefinir suas ferramentas de linha de comando para a versão Xcode.app, execute depois

sudo xcode-select -r

Ou, outra coisa que você pode fazer é adicionar o sinalizador para ignorar argumentos de linha de comando desconhecidos. Então a instalação se parece com isto:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install nokogiri

12

Isso é o que funcionou para mim no 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

incrivelmente, essa é a única coisa em toda essa caminhada que também me ajudou. obrigado!
KonstantinK

O problema com isso é que usar sudocom RVM ou rbenv causará problemas, pois o root não sabe onde os Rubies em sandbox estão. Isso é abordado na página de instalação do RVM . O OP está usando RVM, e o uso sudofaria com que Nokogiri fosse instalado no Ruby da Apple, não no usuário. Portanto, não faça isso a menos que tenha CERTEZA de que deseja instalar no Ruby da Apple se estiver no Mac OS, ou no Ruby do sistema se estiver em outro * nix.
The Tin Man

10

Estou no OSX Mavericks e meu problema acabou por ser uma má instalação do Ruby.

Então, eu reinstalei o ruby ​​com o rvm:

rvm remove ruby 2.0.0p451
rvm remove ruby-2.0.0-p451 && rvm install ruby-2.0.0-p451

Então fui capaz de

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

Problema resolvido.


Legal. Agora que você está usando o rvm em mavericks, tente abrir o vim. Erro SEGV? Encantador.
Tim

Não consegui remover o gemset porque as pastas não estavam vazias, mas reinstalar o gemset (embora houvesse erros) sim! Esta é a única coisa que funcionou para mim!
Onikoroshi

9

Eu gosto de ficar com coisas fornecidas pelo sistema normalmente. Isso funcionou para mim:

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/

depois de pesquisar no Google por horas, essa foi a única solução que funcionou para mim, obrigado! : D
Rogerio Chaves

5

Eu tive esse problema imediatamente após instalar a atualização do Mavericks 10.9.5 e a atualização das ferramentas do desenvolvedor 10.9 da Apple. Corri xcode-select --install, mas isso não resolveu o problema. Então abri o XCode, aceitei o eula e fechei o XCode. Isso resolveu o problema.


3

Tive esse problema hoje, no Maverick, foi assim que acabei resolvendo o problema:

brew update
brew install libiconv
brew link libiconv

Certifique-se de que você sabe que a versão do libiconv no Cellar mine abaixo era 1.14 e instale como segue:

gem install nokogiri -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Se você precisar de uma versão específica do nokogiri, por exemplo -v '1.6.2.1', instale como:

gem install nokogiri -v '1.6.2.1' -- --with-iconv-dir=/usr/local/Cellar/libiconv/1.14

Nokogiri foi instalado com sucesso!


Também funcionou para mim no Yosemite. Nenhuma das respostas acima sim.
MattL

3

É o mesmo que a postagem de @thomas_witt, mas funciona no 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

Para fazer a instalação funcionar, tive que modificar os caminhos de arquivo no gem installcomando para corresponder aos do meu sistema. Eu tenho versões diferentes de libxml2 e libiconv e uma estrutura de arquivo ligeiramente diferente. O comando, com minhas modificações, é:

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

Tive que ser muito meticuloso com os caminhos dos arquivos. Levei várias tentativas para construir corretamente os comandos.
darkmoves de

Aqui está um link para outra solução para o problema de uma versão incorreta do libxml.
darkmoves de

2

Para quem usa MacPorts , certifique-se de ter instalado libxml2via MacPorts. Em seguida, digite:

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

Isso deve funcionar, funcionou para mim sem usar caminhos completos.



2

Aqui está outra referência:

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]

Recebi um erro ao instalar o nokogiri

erro como este:

.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)

Você deve instalar as ferramentas de desenvolvimento primeiro.

então provavelmente precisará de:

$ xcode-select --install

ou se você obteve um erro como

checking for libxml/parser.h... no

Acabei de corrigir o caminho lib por:

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/

para pacote precisa de algo como:

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

Isso funciona para mim

system: OS X Yosemite 10.10
rvm: 1.26.10
ruby: ruby 2.2.1 

Basta executar abaixo de dois comandos

$ xcode-select --install

Ele pedirá que você faça o download, diga "sim" e então pedirá para instalar o componente xcode clique em instalar.

Agora tente instalar o gem com o comando abaixo

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

Isso funciona para mim com o ambiente acima.


1

Encontrei o mesmo problema com Mavrick e a solução foi:

xcode-select --install

No entanto, isso não está funcionando porque a página de download da Apple para a ferramenta de linha de comando não tem esse instalador disponível publicamente agora.

Então, se você deseja ter as ferramentas de linha de comando para Mavricks, você precisa ter uma conta paga . Só então você poderá instalá-lo. Depois de instalá-lo, você não enfrentará esse problema com o Nokogiri.


Não tenho uma conta paga e instalei as ferramentas de linha de comando. Instalei usando o terminal, mas um amigo meu instalou usando aquela página de download e ele também não tem uma conta paga.
squiter

Eu concordo com você. A mesma coisa aconteceu comigo até 24 de novembro de 2013. No entanto, se você acessar essa página agora e tentar acessá-la, receberá este erro. O estranho é que você faz o login com suas credenciais, mas isso o manterá como visitante. Esta é a mensagem que recebo na página com minha conta: Grande aviso do Apple Developer Program Não foi possível processar sua solicitação. Volte para a página anterior ou feche o navegador e tente sua solicitação novamente. Se precisar de ajuda, entre em contato com o Suporte ao desenvolvedor da Apple.
shinesecret

1

Eu tive este mesmo erro em uma nova instalação do Mavericks. Após um lapso de julgamento, renomeei meu pacote de aplicativos Xcode para Xcode 5.0.1.app.

Aparentemente, o script de instalação do Nokogiri não cita seus caminhos e, portanto, o espaço no nome do arquivo causou todos os tipos ou problemas. Só depois de tentar é brew install libxml2que o erro se tornou óbvio.

Lição aprendida: espaços em nomes de arquivos são nocivos.


1

No meu caso, eu realmente tive que executar /usr/bin/gcc-4.2 após fazer o link simbólico. Você tem que aceitar o contrato de licença, caso contrário, ele trava.


1

A mensagem de erro dá uma pista aqui: 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  

Você também pode precisar preparar a instalação e vincular estes:

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

Para mim, o erro foi que o gcc (4.2.1, instalado a partir do Homebrew) estava reclamando que:

-E, -S, -save-temps and -M options are not allowed with multiple -arch flags

Resolvi o problema forçando apenas x86_64:

ARCHFLAGS="-arch x86_64" gem install nokogiri 

1

Depois de atualizar para o Maverick, tive um problema semelhante. Eu uso RVM com Ruby 1.9.2-p320 e tentei várias soluções fornecidas aqui, mas nada resolveu o problema.

Então mudei para Ruby 2.1.2 e bundle installinstalei o Nokogiri imediatamente.


1

Se alguém estiver tendo esse problema no el capitan, ao usar o bundler.

Certifique-se de que as ferramentas de linha de comando xcode estejam instaladas e execute o seguinte:

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

Eu estava enfrentando o mesmo problema nas últimas duas semanas ao tentar executar um aplicativo da versão Rails 3.

O problema é que seu rvm / rbenv não está usando o compilador C.

Use este comando para rvm para pegar um compilador C compatível

CC=gcc rvm install-version

Então, se você está usando Ruby 1.9.3, use desta forma

CC=gcc rvm install-1.9.3

Use este comando toda vez que você não puder agrupar a instalação ou qualquer coisa. Essa coisa está funcionando no El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Esperançosamente, resolverá o problema.

Eu estava enfrentando o mesmo problema nas últimas duas semanas ao tentar executar um aplicativo da versão Rails 3.

O problema é que seu rvm / rbenv não está usando o compilador C.

Use este comando para rvm para pegar um compilador C compatível

CC=gcc rvm install-version

Então, se você está usando Ruby 1.9.3, use desta forma

CC=gcc rvm install-1.9.3

Use este comando toda vez que você não puder agrupar a instalação ou qualquer coisa.

Essa coisa está funcionando no El Capitan, rails 3.2.16, ruby ​​1.9.3, mysql 5.7 Esperançosamente, resolverá o problema. E também se você já tem o Xcode e também não está recebendo os mesmos erros ao instalar qualquer gem, tente esta solução.


1

Adicionei minhas descobertas aqui depois de encontrar o mesmo problema logo após uma atualização: http://jasdeep.ca/2013/10/installing-nokogiri-fails-os-x-mavericks/

A solução é simplesmente estes 2 comandos:

xcode-select --install
gem install nokogiri

Espero que ajude.


5
Por favor, poste o material aqui - links podem ser quebrados (veja as diretrizes)
Justin

Isso me ajudou, embora eu concorde com a opinião de postar a resposta aqui, em vez de em um link :)
Richard

Isso é o que é considerado uma resposta apenas de link, o que não é recomendado no Stack Overflow. Em vez de apenas postar um link para seu próprio site, resuma também as informações importantes em sua resposta. Dessa forma, se o link estragar, como costuma acontecer, a resposta continuará a fornecer algum valor.
o Homem de Lata de

0

Eu também tive esse problema. A execução brew doctormostrou que eu tinha uma versão inesperada de libiconv em / 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

Então, eu os removi e refiz 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

Por fim, instalei o nokogiri:

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

Eu tive um problema semelhante (um libiconv desvinculado). Desvinculei libiconv e reinstalei. brew install libiconv e gem install nokogirl.
Ben

0

Nenhuma dessas respostas funcionou para meu caso específico e, como sou novato, imaginei que minha solução poderia ajudar outra pessoa.

Estou usando o Yosemite e o Ruby 1.9.3p547. Houve uma exposição de segurança para p547, então eu estava tentando atualizar para Ruby 1.9.3p550 ou superior. Usei RVM, tentei migrar minhas joias e muitas delas não funcionaram. Então tentei empacotar a instalação, mas estava falhando e pensei que talvez fosse um conflito entre os vários caminhos e dependências, então removi a versão mais antiga do Ruby. Isso quebrou tudo.

Continuei recebendo uma mensagem dizendo que o compilador C estava faltando, embora eu tivesse baixado o XCode e atualizado recentemente as ferramentas CLI. Encontrei outro site que me disse para baixar um GCC de terceiros, o que fiz. o que tornou tudo pior.

Agora estou recebendo uma mensagem dizendo que preciso corrigir meus perfis e PATHs ou talvez seja mais fácil reinstalar o OSX. Então eu fiz.

Enfim, uma história mais longa, apenas longa: a solução que finalmente funcionou para mim foi me livrar do RVM e apenas usar o brew para baixar a versão Ruby que eu queria antes de executar bundle install. Instale a versão correta do Nokogiri FIRST.

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

O uso sudofará com que o Nokogiri seja instalado no único Ruby conhecido pelo root, que é altamente provável que seja o Ruby instalado da Apple, a menos que você use o Homebrew. Como o OP estava usando RVM, isso significa que Nokogiri não seria visto por um Ruby gerenciado por RVM e apenas agravaria o problema. O uso sudopode ter funcionado neste caso, mas não deve ser tentado com um RVM ou Ruby gerenciado por rbenv. O RVM diz especificamente para não fazer isso na documentação de instalação .
The Tin Man

0

para Windows, você também pode tentar a instalação local:

  1. baixe a gema apropriada com base em seu ambiente.

  2. vá para o diretório onde salvou o arquivo gem.

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

se não funcionou, você pode verificar se possui zlib e mingw ou o compilador c adequado instalado.


0

Cada coisa aqui não funcionou para mim (eu não entrei no brew reinstala, oy), mas isso finalmente fez (encontrado através de um relatório de bug em algum projeto não relacionado):

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

Boa sorte. Yay for #yakshaving!


-3

Verifique a versão das suas ferramentas Commandline. Configure sua máquina para usar as ferramentas de linha de comando Xcode 5.0.X e execute:

gem install nokogiri

você deve usar este comando. terminal aberto. e escreva este comando. export NOKOGIRI_USE_SYSTEM_LIBRARIES = true
Durul Dalkanat
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.