2012-11-09 47 views
9

mam odinstalowania portu z Mac z tej COMAND:Jak naprawić błąd libiconv na Macu?

sudo port -fp uninstall installed 

wtedy, gdy używam wget pobrać plik, to pokazuje mi:

dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib 
    Referenced from: /opt/local/bin/wget 
    Reason: Incompatible library version: wget requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 
Trace/BPT trap: 5 

Jak to zrobić?

※ Mac OS X 10.7.5

Dodawanie

Kiedy biegnę

otool -L $(which wget) 

Dało mi

/opt/local/bin/wget: 
    /opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0) 
    /opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.1.0) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0) 
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 635.19.0) 
    /opt/local/lib/libgnutls.26.dylib (compatibility version 49.0.0, current version 49.3.0) 
    /opt/local/lib/libtasn1.3.dylib (compatibility version 5.0.0, current version 5.13.0) 
    /opt/local/lib/libgcrypt.11.dylib (compatibility version 19.0.0, current version 19.0.0) 
    /opt/local/lib/libgpg-error.0.dylib (compatibility version 9.0.0, current version 9.0.0) 
    /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.7) 
    /opt/local/lib/libidn.11.dylib (compatibility version 18.0.0, current version 18.8.0) 
+0

Upewnij się, że nie ustawiono opcji "DYLD_LIBRARY_PATH". Może powodować takie problemy, a generalnie nie jest potrzebne i aktywnie uszkadza system OS X (na przykład w tym przypadku). – neverpanic

Odpowiedz

10

Najwyraźniej zbudowany i zainstalowany kopię wget lokalnie podczas gdy miałeś libiconv zainstalowany z MacPorts, więc to dynamicznie łączy się z tą biblioteką, którą teraz usunąłeś. Jeśli chcesz usunąć wszystkie ślady MacPorts, musisz przebudować tę kopię z wget.

W przeciwnym razie można zainstalować kopię pliku wget z programem MacPorts, który zainstaluje również wszystkie zależności, takie jak libiconv.

sudo port selfupdate 
sudo port clean wget 
sudo port install wget 

Albo zamiast wget, można użyć curl które dostaw firmy Apple z OS X.

UPDATE: Na podstawie aktualizacją wydaje używasz MacPorts zainstalowane wget. W jakiś sposób udało się uzyskać niezsynchronizowane zależności. (Dlaczego używać port -fp uninstall installed?) Proponuję teraz spróbować:

sudo port selfupdate  # if not run recently 
sudo port clean libiconv 
sudo port upgrade --force libiconv 

wymusić aktualizację libiconv do bieżącej wersji.

AKTUALIZACJA [2014-12]: Ponowne sprawdzenie tego problemu może być spowodowane niepełnym plikiem portu MacPorts, który nie rejestruje zależności portu wget od libiconv. Mam o tym opened an issue. [...] A projekt MacPorts odpowiada, że ​​może to wynikać z nieprzestrzegania instrukcji migracji MacPorts podczas aktualizacji do nowej wersji systemu OS X; jest MacPorts problem hotlist entry for libiconv compatibilities here.

W każdym razie, co może działać, to przeinstalowanie wget ze źródła.

sudo port selfupdate 
sudo port -f uninstall wget 
sudo port -s install wget 

Jeśli to nie pomoże, może chcesz przeczytać the migration instructions i upewnij się, że ponownie zainstalować wszystkie porty po uaktualnieniu.

+0

Dziękuję bardzo. Mam zrobić to, co napisałeś. Ale pechowy zobaczyłem błąd ponownie. Gdy uruchomię 'port installed', aby sprawdzić libiconv, to jest libiconv @ 1.14_0 (active). I kiedy uruchomię polecenie curl, mam ta sama wiadomość :( – ikebukuro

+0

Dziękuję! Próbowałem twojej metody.Ale wynik jest taki sam.Może coś nie tak na moim komputerze.Ale dziękuję ci tak samo – ikebukuro

+1

Przyjęta odpowiedź nie jest poprawna i nie rozwiązuje problemu. –