Página Inicial > Ruby, Unix > Dica para instalar Webrat no Mac OS X e no Ubuntu

Dica para instalar Webrat no Mac OS X e no Ubuntu

Tanto no Mac OS X como Ubuntu pode haver dependências para instalar o Webrat. Abaixo segue a solução dos problemas que tive na hora da instalação.

.
Mac OS X

Antes de instalar o Webrat você precisa instalar o pacote Xcode Tools que vem com o DVD de instalação do Mac OS X. Esse pacote você encontra na pasta Optional Installs / Xcode Tools do DVD. Ele é necessário, pois arquivos de cabeçalho do Ruby (header files) não são instalados por padrão no Mac OS X.

Se você tentar instalar o Webrat sem esse arquivos, vai obter a seguinte mensagem de erro:

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

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
can’t find header files for ruby.

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/nokogiri-1.3.3 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/nokogiri-1.3.3/ext/nokogiri/gem_make.out

.
Após a instalação do Xcode Tools, instale o Webrat via terminal:

$ sudo gem install webrat

E se tudo ocorrer bem, você terá uma mensagem semelhante a essa:

Building native extensions.  This could take a while…
Successfully installed nokogiri-1.3.3
Successfully installed webrat-0.5.3
2 gems installed
Installing ri documentation for nokogiri-1.3.3…
Installing ri documentation for webrat-0.5.3…
Installing RDoc documentation for nokogiri-1.3.3…
Installing RDoc documentation for webrat-0.5.3…

.
A versão utilizada do Mac OS X foi a 10.5.7.
.
Atualização em 20/09/2009: Conforme o comentário do Mauricio, quando rodamos o Cucumber, aparece a seguinte mensagem:

HI. You’re using libxml2 version 2.6.16 which is over 4 years old and has
plenty of bugs. We suggest that for maximum HTML/XML parsing pleasure, you
upgrade your version of libxml2 and re-install nokogiri. If you like using
libxml2 version 2.6.16, but don’t like this warning, please define the constant
I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 before requring nokogiri.

A solução para isso é atualizar o libxml2 e reinstalar o nokogiri. Siga os passos abaixo.

Atualize o libxml2 através do MacPorts:
$ sudo port install libxml2

Desinsta-le o nokogiri:
$ sudo gem uninstall nokogiri

Instale novamento o nokogiri para utilizar a nova versão do libxml2:
$ sudo gem install nokogiri

.
Ubuntu

Há duas bibliotecas que precisam ser instaladas antes do Webrat: libxmllibxslt. Para instalá-las, vá no terminal:

$ sudo apt-get install libxml2-dev

$ sudo apt-get install libxslt1-dev

Caso você tente instalar o Webrat sem ter essas bibliotecas, obterá o seguinte erro:

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

/usr/bin/ruby1.8 extconf.rb
checking for iconv.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2, /usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2… yes
checking for libxml/parser.h in /opt/local/include/,/opt/local/include/libxml2,/opt/local/include,/opt/local/include,/opt/local/include/libxml2, /usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2,/usr/include,/usr/include/libxml2… no
libxml2 is missing. try ‘port install libxml2′ or ‘yum install libxml2-devel’
*** 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=/usr/bin/ruby1.8
–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

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/nokogiri-1.3.3 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/nokogiri-1.3.3/ext/nokogiri/gem_make.out

.
Depois de instalar as bibliotecas, você pode instalar o Webrat no terminal:

$ sudo gem install webrat

E terá a mensagem de instalação com sucesso semelhante a essa:

Building native extensions. This could take a while…
Successfully installed nokogiri-1.3.3
Successfully installed webrat-0.5.3
2 gems installed
Installing ri documentation for nokogiri-1.3.3…
Installing ri documentation for webrat-0.5.3…
Installing RDoc documentation for nokogiri-1.3.3…
Installing RDoc documentation for webrat-0.5.3…

.
A versão utilizada do Ubuntu foi a 9.04.


Ruby, Unix , , , , ,

  1. Mauricio
    7, setembro, 2009 em 11:43 | #1

    Instalei o XCode pelo DVD do Mac porém a libxml2 está na versão 2.6.16, quando rodei o cucumber aparece uma mensagem que é necessário uma versão atualizada. Isto aconteceu contigo também? Não consegui atualizar essa gem no Mac.

    Mensagem:
    HI. You’re using libxml2 version 2.6.16 which is over 4 years old and has
    plenty of bugs. We suggest that for maximum HTML/XML parsing pleasure, you
    upgrade your version of libxml2 and re-install nokogiri. If you like using
    libxml2 version 2.6.16, but don’t like this warning, please define the constant
    I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 before requring nokogiri.

  2. Pedro Bonamides
    8, setembro, 2009 em 08:11 | #2

    Tive o mesmo problema do @Mauricio.

  3. 18, setembro, 2009 em 20:37 | #3

    Não testei o cucumber ainda. Vou ver o que acontece e te aviso.

  4. 20, setembro, 2009 em 11:37 | #4

    @Mauricio, rodei o cucumber e apareceu a mesma mensagem.
    Atualizei o post com a solução do problema.
    Valeu.

  5. 21, setembro, 2009 em 18:49 | #5

    Esta instalando no JRuby a gem do nokogiri que utiliza a biblioteca libxml2.

    Ele informa esta mensagem descrita no comentário referente a versao 2.6.1.6. Utilizei o macports para atualizar, alias, no meu caso n precisei, isso já havia sido feito. A versão no ports corresponde a 2.7.3.

    Só que ao instalar a gem ele mantem a referencia para a versão anterior. Sabe o que tenho que fazer para corrigir?

    Estou usando Mac OSX

  6. 22, setembro, 2009 em 21:10 | #6

    @Fabio
    Tente desinstalar o nokogiri e instalar dessa maneira:
    $ sudo gem install nokogiri — –with-xml2-include=/usr/local/include/libxml2 –with-xml2-lib=/usr/local/lib

    Se você quiser tentar a sorte, no FTP da XML Sotf tem a versão 2.7.4 da libxml2 para baixar:
    ftp://xmlsoft.org/libxml2/

    Aí você vai ter que instalar na mão. Nesse post tem alguns passos de como fazer isso:
    http://martinisoftware.com/2009/07/31/nokogiri-on-leopard.html

    Eu não tive sucesso dessa maneira, somente consegui utilizando o Mac Ports.
    Depois me conta se deu certo.

  7. 1, dezembro, 2009 em 19:36 | #7

    Valeu, resolveu direitinho! Uso Ubuntu Kamic Koala :D

  8. 4, fevereiro, 2010 em 14:09 | #8

    Show! Aqui resolveu. Valeuzão!

  9. Artur Rodrigo
    5, fevereiro, 2011 em 07:42 | #9

    Ai vlw pela dica estava com dificuldade na instalação e esse post resolveu meu problema.

  1. Nenhum trackback ainda.