2009-08-04 9 views
1

Je ne peux pas comprendre ce qui ne va pas ici - des idées?Impossible de créer un gem - la construction de l'extension native échoue - pouvez-vous voir pourquoi?

Je suis en cours d'exécution sur une Ubuntu 8.04 LTS, et ont installé libxml2 et libxslt de ces instructions:

http://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux.php

http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.php

Cependant, j'ai installé les dernières versions:

libxslt-1.1.24
libxml2-2.7.3

L'installation s'est déroulée sans incident

-------------------- J'ai réglé LD_LIBRARY_PATH ------------------ ----------------

écho $LD_LIBRARY_PATH
/usr/local/libxslt/lib:

------------- semble que la fonction est présente - au moins basée sur la sortie des chaînes ------------
/usr/local/libxslt/lib $ strings * | grep ParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc
xsltParseStylesheetDoc

----------------------- Mais la compilation échoue toujours ----------------------------------------

sudo gem installer webrat
Création d'extensions natives. Cela peut prendre un certain temps ...
ERREUR: Erreur lors de l'installation de webrat:
ERREUR: Échec de la création de l'extension native gem.

/usr/local/bin/ruby ​​extconf.rb installer Webrat
vérification de iconv.h dans/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/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2 ... oui
recherche de libxml/parser.h dans/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/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2 ... oui
recherche de libxslt/xslt.h dans/opt/local/include /,/opt/local/include/libxml2,/opt/local/include,/opt/l ocal/include,/opt/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2 ... oui
recherche de libexslt/exslt.h dans/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/local/include,/usr/local/include/libxml2,/usr/include,/usr/include/libxml2 ... oui
recherche de xmlParseDoc() dans -lxml2 ...oui
recherche de xsltParseStylesheetDoc() dans -lxslt ... non
libxslt est manquant. essayez 'port installer libxslt' ou 'yum install libxslt-devel'
*** extconf.rb failed ***
Impossible de créer Makefile pour une raison quelconque, probablement le manque de
bibliothèques nécessaires et/ou les en-têtes. Vérifiez le fichier mkmf.log pour plus de détails
. Vous pouvez avoir besoin d'options de configuration.

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/local/bin/ruby
--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-xml2lib
--without-xml2lib
--with-xsltlib
--without-xsltlib

fichiers Gem restent installés dans /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.3.3 aux fins d'inspection.
Résultats enregistrés à /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.3.3/ext/nokogiri/gem_make.out

Répondre

0

Essayez de supprimer les libxslt * et les installer à nouveau. Cela a réglé le problème pour moi.

+0

Je réinstallée libxslt avec une course de ./configure par défaut, et il le fixe. Essentiellement la même solution. Merci –

0

Vous devez installer les kits de développement de ces bibliothèques.

+0

Oui, mais le problème était que même si l'installation semblait correcte, elle ne fonctionnait pas. La solution de la reconstruction des bibliothèques aurait dû être inutile. Cependant, dans mon cas comme OP, et le cas de l'affiche qui est la réponse que j'ai étiqueté comme la réponse, il a résolu le problème. Cela n'a pas de sens, mais c'est ce que c'est. –

5

Dans Ubuntu, vous devez suivre ces étapes: sudo apt-get install libxml2-dev sudo apt-get install libxslt-dev

+1

Je suppose que c'est la solution idéale! – hnprashanth

0

je reçois la même erreur lors de l'installation à un emplacement non standard (car je n'ai pas accès aux répertoires en dehors de mon répertoire personnel). Il semble que cette réponse soit simplement installée à l'emplacement par défaut dans/usr pour réussir. Ou ai-je mal compris?

Plus de contexte sur ce que j'essaie de faire au http://groups.google.com/group/nokogiri-talk/browse_thread/thread/c1e909be09e90f5a, si c'est utile.

1

Jared Evans en this post sur son blog, a décrit une solution qui a fonctionné pour moi sur Ubuntu 8.04 LTS. Son astuce consiste à ne PAS utiliser apt-get pour installer des rubygems, mais plutôt de le construire à partir de la source. Cela a fonctionné très bien pour moi. Son poste est dirigé à l'installation rails, donc j'utilisé ces (légèrement modifié) pas de pour installer uniquement nokogiri:

PREMIER INSTALLER RUBY AVEC APT-GET:

sudo apt-get update 
sudo apt-get install ruby irb ri rdoc ruby1.8-dev libzlib-ruby 
    libyaml-ruby libreadline-ruby libncurses-ruby libcurses-ruby libruby 
    libruby-extras libfcgi-ruby1.8 build-essential libopenssl-ruby 
    libdbm-ruby libdbi-ruby libdbd-sqlite3-ruby sqlite3 libsqlite3-dev 
    libsqlite3-ruby libxml-ruby libxml2-dev 

EN SUS INSTRUCTIONS JARED'S J'INSTALLÉ AUSSI (Je ne suis pas certain que libxslt1.1 est nécessaire):

sudo apt-get install libxslt1.1 
sudo apt-get install libxslt1-dev 

TÉLÉCHARGER SOURCE rubygems:

Télécharger le latest RubyGems (actuellement 1.3.6) de rubyforge (j'ai utilisé le package zip).

BUILD Rubygems:

cd /TO/DIRECTORY/WHERE/YOU/UNZIPPED/rubygems-1.3.6/ 
sudo ruby setup.rb 
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem 

INSTALLER Nokogiri:

sudo gem update –system 
sudo gem install nokogiri 

La réponse est la suivante:

1 gem installed 
Installing ri documentation for nokogiri-1.4.1... 

No definition for parse_memory 

No definition for parse_file 

No definition for parse_with 

No definition for get_options 

No definition for set_options 
Installing RDoc documentation for nokogiri-1.4.1... 

No definition for parse_memory 

No definition for parse_file 

No definition for parse_with 

No definition for get_options 

No definition for set_options 

Je ne l'ai pas encore remarqué des problèmes causés par la « Aucune définition ' messages...

0

est ici ce qui a fonctionné pour moi sur Ubuntu 11.04 (natty):

sudo apt-get install libxslt-dev libxml2-dev

sudo gem install nokogiri

Questions connexes