Eu atualizei meu OSX (Lion) para Mavericks e não consigo instalar o Nokogiri para meus projetos.
xcode-select --install
Já 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?
Respostas:
Você também pode instalar o Nokogiri no Mac OS X 10.9 Mavericks com instalação completa do XCode usando:
Atualizar
Para aqueles que usam Yosemite, o seguinte comando funcionará:
ou pode estar na sua
MacOSX10.11.sdk
pasta (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á:
Atualizar
Para aqueles que usam o Sierra, o seguinte comando funcionará:
fonte
--use-system-libraries
para 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
gem install nokogiri -- --with-xml2-include=`xcrun --show-sdk-path`/usr/include/libxml2 --use-system-libraries
Depois de navegar pelos GIFs animados aqui , tudo o que tive que fazer foi simples
xcode-select --install
egem install nokogiri
funcionou bem.fonte
Encontrei este log e vi que o gcc-4.2 não foi encontrado:
Para resolver este problema, instalei apple-gcc42 usando homebrew
brew install apple-gcc42
e 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
fonte
brew install apple-gcc42
.. e funciona. Esse comando não funciona para você?xcode-select --install
antes da instalação do brew e tudo funciona agora.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
para configurar sua máquina para usar as ferramentas de linha de comando Xcode 5.0.X e, em seguida, execute
Se você deseja redefinir suas ferramentas de linha de comando para a versão Xcode.app, execute depois
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:
fonte
Isso é o que funcionou para mim no OSX Mavericks:
fonte
sudo
com 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 usosudo
faria 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.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:
Então fui capaz de
Problema resolvido.
fonte
Eu gosto de ficar com coisas fornecidas pelo sistema normalmente. Isso funcionou para mim:
fonte
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.fonte
Tive esse problema hoje, no Maverick, foi assim que acabei resolvendo o problema:
Certifique-se de que você sabe que a versão do libiconv no Cellar mine abaixo era 1.14 e instale como segue:
Se você precisar de uma versão específica do nokogiri, por exemplo -v '1.6.2.1', instale como:
Nokogiri foi instalado com sucesso!
fonte
É o mesmo que a postagem de @thomas_witt, mas funciona no Mac OS X Sierra:
fonte
Para fazer a instalação funcionar, tive que modificar os caminhos de arquivo no
gem install
comando 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, é:fonte
Para quem usa MacPorts , certifique-se de ter instalado
libxml2
viaMacPorts
. Em seguida, digite:Isso deve funcionar, funcionou para mim sem usar caminhos completos.
fonte
Use
brew install libxml2 libxslt
se você usar o Homebrew.fonte
Aqui está outra referência:
Recebi um erro ao instalar o nokogiri
erro como este:
Você deve instalar as ferramentas de desenvolvimento primeiro.
então provavelmente precisará de:
ou se você obteve um erro como
Acabei de corrigir o caminho lib por:
para pacote precisa de algo como:
fonte
Isso funciona para mim
Basta executar abaixo de dois comandos
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
Isso funciona para mim com o ambiente acima.
fonte
Encontrei o mesmo problema com Mavrick e a solução foi:
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.
fonte
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 libxml2
que o erro se tornou óbvio.Lição aprendida: espaços em nomes de arquivos são nocivos.
fonte
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.
fonte
A mensagem de erro dá uma pista aqui:
The compiler failed to generate an executable file. (RuntimeError)
Você também pode precisar preparar a instalação e vincular estes:
fonte
fonte
Para mim, o erro foi que o gcc (4.2.1, instalado a partir do Homebrew) estava reclamando que:
Resolvi o problema forçando apenas x86_64:
fonte
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 install
instalei o Nokogiri imediatamente.fonte
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:
fonte
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
Então, se você está usando Ruby 1.9.3, use desta forma
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
Então, se você está usando Ruby 1.9.3, use desta forma
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.
fonte
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:
Espero que ajude.
fonte
Eu também tive esse problema. A execução
brew doctor
mostrou que eu tinha uma versão inesperada de libiconv em / user / local / lib.Então, eu os removi e refiz libxml:
Por fim, instalei o nokogiri:
fonte
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.fonte
sudo
fará 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 usosudo
pode 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 .para Windows, você também pode tentar a instalação local:
baixe a gema apropriada com base em seu ambiente.
vá para o diretório onde salvou o arquivo gem.
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.
fonte
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):
Boa sorte. Yay for #yakshaving!
fonte
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:
fonte