1 votes

La gemme Nokogiri ne s'installe pas sous OS X Mavericks

L'installation échoue :

checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
checking for libiconv_open() in -liconv... no
libiconv is missing.

Cependant, en regardant le fichier mkmf.log de nokogiri, les erreurs suivantes sont affichées :

ld: warning: ignoring file /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib

ld: warning: ignoring file /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib

ld: warning: ignoring file /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib

J'ai installé xcode et ses outils de commande. Mon ~/.bash_profile a une compilation 64bit forcée par : export ARCHFLAGS="-arch x86_64"

J'ai installé libxml2, libxslt et libiconv via Homebrew, et chacun est lié. J'ai essayé de les installer sans ARCHFLAG dans .bash_profile.

J'ai aussi installé brew install apple-gcc42 et linké, comme je l'ai trouvé dans les how tos.

J'ai essayé d'installer nokogiri en passant les chemins vers libxml2, libxslt, et libiconv dans /usr/local/Cellar/, mais l'installation échoue toujours, avec les mêmes erreurs que ci-dessus.

J'ai perdu au moins une journée sur ce sujet - en essayant juste d'installer une gemme Ruby. J'aimerais vraiment me remettre à développer.

Quelqu'un peut-il nous aider ?

1voto

chillin Points 2767

Vous ne pouvez pas supposer que la version de ruby intégrée à OS X est compatible avec les gemmes que vous souhaitez utiliser. N'essayez pas de supprimer la version de ruby livrée avec OS X, ni de la mettre à jour ou de la mettre à niveau, à moins d'utiliser App Store/Software Update/softwareupdate. La plupart des utilisateurs de ruby vous diront de ne pas vous embêter à utiliser la version de ruby livrée avec OS X. Mais vous pouvez installer plusieurs versions de ruby, et vous aurez certainement besoin d'une version de ruby. gestionnaire de version ruby si vous avez l'intention d'utiliser beaucoup de pierres précieuses.

ruby était autrefois assez facile à utiliser, mais maintenant, le nombre de versions qui doivent nécessairement être supportées est légion, et les développeurs de gemmes vous obligent parfois à installer une nouvelle version de ruby à une autre version alors que vous avez déjà une installation de ruby en parfait état ! Grr. ruby commence vraiment à s'irriter, parce que même si l'information sur le support est disponible, elle ressemble de plus en plus à un moulinet de pêche qui s'est planté. IMO, ruby est cassé, quelqu'un va devoir le sortir et le remonter proprement pour qu'il soit réparé, et je n'en suis tout simplement pas capable. Je ne suis pas celui qu'il faut. Pas moi.

Malgré l'enthousiasme de brewinistas, le gestionnaire de paquets homebrew a des problèmes de croissance typiques d'une solution de gestion de paquets immature. J'utilise MacPorts pour gérer... toutes mes installations, mais aussi les différentes versions des installations de ruby qui sont nécessaires pour utiliser les gemmes que je veux. MacPorts nécessite une version appropriée de xcode ; xcode_5.1.1.dmg est la version la plus récente pour Mavericks. rvm utilise MacPorts par par défaut s'il est installé.

D'après les journaux que vous avez fournis, il semble qu'il vous manque des éléments. C'est ce qui est bien avec MacPorts (et tout gestionnaire de paquets mature) ; il s'occupe des dépendances pour vous si elles ne sont pas installées.

Installer MacPorts

 curl -Ok https://distfiles.macports.org/MacPorts/MacPorts-2.2.1.tar.bz2

 tar xf MacPorts-2.2.1.tar.bz2

 cd MacPorts-2.2.1

 ./configure

 make

 sudo make install

 cd ..

 rm -rf Macports-*

 sudo /opt/local/bin/port -v selfupdate

ajoutez MacPorts à votre $PATH :

 export PATH=/opt/local/bin:/opt/local/sbin:$PATH

regardez ce que MacPorts a pour ruby

 port search ruby |less

et/ou installer nokogiri

 sudo port -vsk install ruby19 libxml2 libxslt 

 sudo gem install nokogiri

 port -vfp clean ruby19 libxml2 libxslt

en cas de problème, essayez

 sudo port upgrade outdated

MacPorts n'affecte pas les versions OS X de quoi que ce soit, ni les homebrew (sauf pour les rendre superflus) et garde tout ce qu'il installe dans /opt, ce qui rend la désinstallation facile (mais cela n'a rien à voir avec l'endroit où ruby garde ses gemmes, ~/.gem ). Mais vous devriez vraiment vous intéresser à savoir et que vous aimez MacPorts, c'est votre ami.

pour désinstaller complètement MacPorts

 sudo port -dfp uninstall --follow-dependencies installed

 sudo port -dfp uninstall all

 sudo rm -rf /opt/local  

 sudo rm -rf /Library/Tcl/macports*

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X