2010-09-13 2 views
5

с этой проблемой при установке нескольких вещей на моем mac, Я думаю, что эта проблема исходит из модернизируя моего леопарда до снежного барса. Также эта проблема также связана с macports, я думаю./usr/local/lib/libz.1.dylib, файл был построен для i386, который не связан с архитектурой (x86_64)

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

Любые идеи?

Update

Чтобы быть более конкретным это происходит на установке nokogiri камень

и журнал выглядит следующим образом:

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 

ответ

0

Это macport миграция проблеме снежного барса, к сожалению, вам необходимо переустановить macports и все порты, чтобы иметь правильную архитектуру. Прочитайте wiki здесь: https://trac.macports.org/wiki/Migration

+0

сделал это раньше ... обновил мое сообщение, пожалуйста, посмотрите – dombesz

+0

oh my bad ... я прочитал/opt/local вместо/usr/local. Кажется, у вас есть пользовательский zlib в/usr/local. У вас есть два варианта: 1.Показать, почему вам нужен пользовательский zlib с аркой i386, и если вы ее не удалите. 2. попытайтесь настроить ваш CFLAGS/LD_LIBRARY_PATH env, чтобы скрыть/usr/local из компилятора. – hellvinz

+0

Я думаю, что у меня есть это из старого os (leopard), который, вероятно, используется imagemagick. На шаге 2 вы можете предоставить информацию, как это сделать?, Спасибо – dombesz

14

Речь идет не о MacPorts: zlib установлен как i386, поэтому его необходимо построить для x86-64. Вот как это сделать:

  1. Update: Как говорит Ник в своем комментарии, вы должны сначала удалить старые ZLIB файлы: sudo rm /opt/local/lib/libz*
  2. Скачать исходный Zlib код из its webpage
  3. Извлечение источника, и открыть терминал в месте расположения источника
  4. ./configure, make и sudo make install
  5. Если он все еще не работает, удалите рубин и снова установить его (вы можете сделать это с RVM)

Надеюсь, это помогло вам.

+3

Это отлично подойдет для меня. Я использую RVM и не должен ничего менять о своих установках RVM/Ruby. Просто удалить старые zlib-файлы и переустановить все, что нужно. 'sudo rm/opt/local/lib/libz *'. (Просто установить новую версию было недостаточно, чтобы удалить эти старые файлы.) – Nick

+1

Спасибо Nick. Вы спасли мою жизнь. – juanitofatas

+0

Отлично! Еще один счастливый Гуглер. <3 – Schrockwell

1
  • Вы могли бы x86_64 скомпилирован Zlib установлен в /usr/local/opt/zlib/ или же сделать brew install zlib это установит Zlib в /usr/local/Cellar/.
  • Временный удалить libz.* из /usr/local/lib/ в папку с резервными копиями.
  • ли gem install nokogiri -v '<version>' --with-zlib-dir=<zlib directory path from step 1>

Nokogiri должны быть установлены в настоящее время. Восстановите резервную копию libz еще раз.

Смежные вопросы

 Смежные вопросы