2010-09-13 24 views
5

ayant ce problème sur l'installation de plusieurs choses sur mon mac, je pense que ce problème vient de mettre à jour mon léopard à léopard des neiges. Aussi ce problème est également lié à macports je pense./usr/local/lib/libz.1.dylib, le fichier a été construit pour i386 qui n'est pas l'architecture étant liée (x86_64)

/usr/local/lib/libz.1.dylib, file was built for i386 which is not the architecture being linked (x86_64) 

Des idées?

Mise à jour

Pour être plus précis cela se produit sur l'installation de gemme nokogiri

et le journal ressemble à:

xslt_stylesheet.c:127: warning: passing argument 1 of ‘Nokogiri_wrap_xml_document’ with different width due to prototype 
cc -dynamic -bundle -undefined suppress -flat_namespace -o nokogiri.bundle  
html_document.o html_element_description.o html_entity_lookup.o html_sax_parser_context.o nokogiri.o xml_attr.o xml_attribute_decl.o xml_cdata.o xml_comment.o xml_document.o xml_document_fragment.o xml_dtd.o xml_element_content.o xml_element_decl.o xml_encoding_handler.o xml_entity_decl.o xml_entity_reference.o xml_io.o xml_libxml2_hacks.o xml_namespace.o xml_node.o xml_node_set.o xml_processing_instruction.o xml_reader.o xml_relax_ng.o xml_sax_parser.o xml_sax_parser_context.o xml_sax_push_parser.o xml_schema.o xml_syntax_error.o xml_text.o xml_xpath_context.o xslt_stylesheet.o -L. -L/usr/local/lib -L/opt/local/lib -L/usr/local/lib -L/usr/lib -L.  -lruby -lexslt -lxslt -lxml2 -lpthread -ldl -lobjc 
ld: in /usr/local/lib/libz.1.dylib, file was built for i386 which is not the architecture being linked (x86_64) 
collect2: ld returned 1 exit status 
make: *** [nokogiri.bundle] Error 1 

Répondre

0

Il est une migration de MacPort à émettre léopard des neiges, malheureusement vous avoir à réinstaller macports et tous les ports pour avoir la bonne architecture. Lisez le wiki ici: https://trac.macports.org/wiki/Migration

+0

fait cela avant ... mis à jour mon poste s'il vous plaît jeter un oeil – dombesz

+0

oh mon mauvais ... j'ai lu/opt/local au lieu de/usr/local. Il semble que vous ayez un zlib personnalisé dans/usr/local. Vous avez deux options: 1.Figurez pourquoi vous avez besoin d'un zlib personnalisé avec une arche i386 et si vous ne le supprimez pas. 2. essayez de tordre votre CFLAGS/LD_LIBRARY_PATH env pour cacher/usr/local du compilateur – hellvinz

+0

Je pense que je l'ai de l'ancien os (léopard) probablement utilisé par imagemagick. À l'étape 2 pouvez-vous fournir des informations comment le faire?, Merci – dombesz

14

Il ne s'agit pas de MacPorts: zlib est installé en tant que i386, donc vous devez le construire pour x86-64. Voici comment faire:

  1. Mise à jour: Comme Nick dit dans son commentaire, vous devez d'abord supprimer les anciens fichiers zlib: sudo rm /opt/local/lib/libz*
  2. code Télécharger source zlib de its webpage
  3. Extrait de la source, et ouvrir un terminal dans un endroit source
  4. ./configure, make et sudo make install
  5. Si cela ne fonctionne toujours pas, retirez le rubis et l'installer à nouveau (vous pouvez le faire avec RVM)

Espérons que cela vous a aidé.

+3

Cela a fonctionné très bien pour moi. J'utilise RVM et je n'ai rien changé à propos de mes installations RVM/Ruby. Il suffit simplement de supprimer les anciens fichiers zlib et de les réinstaller. 'sudo rm/opt/local/lib/libz *'. (Il ne suffisait pas d'installer la nouvelle version pour supprimer ces anciens fichiers.) – Nick

+1

Merci Nick. Tu m'as sauvé la vie. – juanitofatas

+0

Parfait! Un autre Googleur heureux. <3 – Schrockwell

1
  • Vous pourriez avoir x86_64 zlib compilé installé dans /usr/local/opt/zlib/ ou bien faire un brew install zlib cela installera zlib dans /usr/local/Cellar/.
  • Supprime temporairement libz.* de /usr/local/lib/ dans un dossier de sauvegarde.
  • Do gem install nokogiri -v '<version>' --with-zlib-dir=<zlib directory path from step 1>

Nokogiri doit être installé maintenant. Restaurez la librairie de sauvegarde à nouveau.