Recentemente, eu tentei, sem sucesso, instalar uma série de softwares mal-escritos de uma forma hacky (não vou te entediar com os detalhes) e agora parece que meus arquivos do sistema OS X (Lion, 10.7.5) estão uma bagunça. Vou tentar resumir isso.
Principais problemas:
1) Não conseguir abrir nenhum software do Terminal por causa das mensagens de erro do dyld
2) Tendo duas versões do libiconv instaladas, uma delas muito antiga e a outra incompleta, e lutando para resolver a situação
Primeiro exemplo de 1): executando algum software (instalado há muito tempo) que eu acho que requer o XCode e tal e é baseado em Python:
...
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/glib/_glib.so, 2): Library not loaded: /opt/local/lib/libiconv.2.dylib
Referenced from: /opt/local/lib/libgobject-2.0.0.dylib
Reason: Incompatible library version: libgobject-2.0.0.dylib requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
No entanto, o otool revela que /opt/local/lib/libiconv.2.dylib é a versão 8.1.0. Acho que esta é a versão instalada pelo MacPorts.
Mas:
$ otool -L /usr/lib/libiconv.2.dylib
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
Portanto, acho que tenho uma versão antiga (7.0.0) para a qual o software que estou tentando executar se refere por engano. Estou hesitante em reinstalar o software porque um amigo guru que está agora do outro lado do mundo me ajudou com isso (ele não foi testado no OS X e eu acho que ele criou um binário e sabe o que mais.) Mas, em todo caso, recebo mensagens como essas por praticamente tudo que estou tentando executar na linha de comando, então não sei se é simplesmente um caso de reinstalar todo o meu software.
Aparentemente, eu preciso da mais nova versão do iconv, isso deve atualizar o libiconv? Então eu peguei o mais novo iconv (1.14) baixando e configurando - talvez ele irá sobrescrever a antiga versão libiconv 7.0.0? Mas não:
$ ./configure --prefix=/usr/lib
...
dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib
Referenced from: /opt/local/lib/libintl.8.dylib
Reason: Incompatible library version: libintl.8.dylib requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
E eu ainda estou na versão antiga:
$ /usr/bin/iconv --version
iconv (GNU libiconv 1.11)
Se eu simplesmente tentar usar o MacPorts para desinstalar o iconv:
$ sudo port uninstall iconv
Não há mensagem, então parece que funcionou, mas o binário ainda está lá, e eu ainda recebo as mesmas mensagens. Mas isso entra em conflito com isso:
$ sudo port upgrade iconv
Error: iconv is not installed
$ sudo port install iconv
Error: Port iconv not found
Eu experimentei as variáveis de ambiente DYLD_LIBRARY_PATH e DYLD_FALLBACK_LIBRARY_PATH no meu ~ / .profile. Eu recebo erros de qualquer forma, agora eles são comentados.
Talvez isso seja informação suficiente para uma possível solução, mas darei mais algumas informações aqui, por precaução.
- Atualizei meu MacPorts recentemente (auto atualização e atualização desatualizada).
- A arquitetura do sistema é x86-64
- Outra mensagem de erro quando tento abrir o Sublime Edit 2 na linha de comando:
dyld: Symbol not found: __cg_jpeg_resync_to_restart
Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
Expected in: /opt/local/lib/libJPEG.dylib
in /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
Trace/BPT trap: 5
$ otool -L /opt/local/lib/libJPEG.dylib
/opt/local/lib/libJPEG.dylib: /opt/local/lib/libjpeg.9.dylib (compatibility version 11.0.0, current version 11.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
$ otool -L /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO | grep "libJPEG*"
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib (compatibility version 1.0.0, current version 1.0.0)
Não libJPEG.dylib em / usr / lib.
Obrigado por ler isto até agora! :)