2
votes

nokogiri ne s'installe pas dans ruby 2.7.1 centos 7.2

       ^
***xml_io.c: At top level:
cc1: warning: unrecognized command line option "-Wno-tautological-compare" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-self-assign" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-parentheses-equality" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-constant-logical-operand" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-cast-function-type" [enabled by default]
compiling xml_libxml2_hacks.c
compiling xml_namespace.c
compiling xml_node.c
xml_node.c: In function ‘reparent_node_with’:
xml_node.c:304:7: warning: passing argument 1 of ‘xmlFree’ discards ‘const’ qualifier from pointer target type [enabled by default]
       xmlFree(reparentee->ns->prefix);
       ^***
xml_node.c:304:7: note: expected ‘void *’ but argument is of type ‘const xmlChar *’
xml_node.c: At top level:
cc1: warning: unrecognized command line option "-Wno-tautological-compare" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-self-assign" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-parentheses-equality" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-constant-logical-operand" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-cast-function-type" [enabled by default]
compiling xml_node_set.c
compiling xml_processing_instruction.c
compiling xml_reader.c
compiling xml_relax_ng.c
compiling xml_sax_parser.c
compiling xml_sax_parser_context.c
compiling xml_sax_push_parser.c
compiling xml_schema.c
compiling xml_syntax_error.c
compiling xml_text.c
compiling xml_xpath_context.c
compiling xslt_stylesheet.c
xslt_stylesheet.c:112:13: warning: ‘swallow_superfluous_xml_errors’ defined but not used [-Wunused-function]
 static void swallow_superfluous_xml_errors(void * userdata, xmlErrorPtr error, ...)
             ^
cc1: warning: unrecognized command line option "-Wno-tautological-compare" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-self-assign" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-parentheses-equality" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-constant-logical-operand" [enabled by default]
cc1: warning: unrecognized command line option "-Wno-cast-function-type" [enabled by default]
linking shared-object nokogiri/nokogiri.so
/usr/bin/ld: unrecognized option '--compress-debug-sections=zlib'
/usr/bin/ld: use the --help option for usage information
collect2: error: ld returned 1 exit status
make: *** [nokogiri.so] Error 1

make failed, exit code 2

5 commentaires

il n'est pas formaté mais j'espère que ça donnera une idée


je pense que vous avez également besoin de libxml-devel et libxslt-devel ou peu importe leur nom ...


"il n'est pas formaté mais j'espère que ça donnera une idée". Puis formatez-le. Un formatage correct est un élément important pour poser une question et pour être membre de la communauté. Veuillez les lire, puis éditez et améliorez votre question: " Comment formater mes messages ... " et " Comment formater mes blocs de code? ". N'oubliez pas que lorsque vous ne faites pas l'effort de bien poser une question, c'est moins compréhensible, moins susceptible d'obtenir une réponse utile et cela nous oblige à essayer de la corriger.


@NickM j'obtiens le package msg libxml2-devel-2.9.1-6.el7.4.x86_64 déjà installé et la dernière version et le package libxslt-devel-1.1.28-5.el7.x86_64 sont déjà installés et la dernière version. Le dernier paquet libxml2 et libxlt est donc déjà là.


Je viens de trouver que nokogiri 1.11.0.rc2 est en cours d'installation, je ne sais pas si cette version est stable à utiliser.


4 Réponses :


2
votes

Ma version Centos était 7.6 et toutes les solutions fournies pour nokogiri ne fonctionnaient pas. Enfin, j'ai mis à jour les centos à 7.8 et cela a fonctionné. J'ai essayé avec la version centos 7.7 dans un autre serveur également, cela fonctionnait également sur 7.7.


0 commentaires

1
votes

J'ai rencontré exactement le même problème. Il semble que la vraie erreur soit

/ usr / bin / ld: option non reconnue '--compress-debug-sections = zlib'

L'indicateur "--compress-debug-sections = zlib" est défini dans le fichier /usr/local/rvm/gems/ruby-2.7.0/gems/nokogiri-1.10.10/ext/nokogiri/Makefile. Ce makefile est créé par un mkmf.rb, et la valeur par défaut des indicateurs se trouve dans ce fichier /usr/local/rvm/rubies/ruby-2.7.0/lib/ruby/2.7.0/x86_64-linux/ rbconfig.rb

CONFIG ["DLDFLAGS"] = "-Wl, - compress-debug-sections = zlib"

Après avoir changé cette ligne pour être

CONFIG ["DLDFLAGS"] = ""

gem installer nokogiri fonctionne bien

Mais je ne suis pas sûr de la fonction exacte de l'indicateur "--compress-debug-sections = zlib" et de ce qui se passerait lorsque je l'ai supprimé


0 commentaires

3
votes

dans la mesure où ma version de centos est ancienne et /usr/bin/ld fait partie de binutils , donc ma suggestion

$ sudo yum update binutils

m'a aidé (au lieu d'une mise à jour complète du système d'exploitation)


1 commentaires

m'a aidé, merci!



0
votes

Cette erreur vient du fait que l'éditeur de liens par défaut sur Centos 7.4 ne prend pas en charge cette option --compress-debug-sections=zlib . Centos 7.8 semble résoudre ce problème.

Mais au cas où vous ne pourriez pas passer à Centos 7.8 , l'option est prise en charge par l'éditeur de liens gold ( ld.gold ).

Pour activer l'utilisation, vous pouvez remplacer l'éditeur de liens en faisant quelque chose comme

ln -s /bin/ld.gold ~/bin/ld; PATH=~/bin:$PATH

puis exécutez la commande nécessaire


0 commentaires