2012-11-09 11 views
9

devo disinstallare porta da Mac con questo comand:Come risolvere l'errore libiconv su Mac?

sudo port -fp uninstall installed 

Poi quando uso wget per scaricare il file, mostra me:

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 

Come fare?

※ Mac OS X 10.7.5

aggiunta

Quando eseguo

otool -L $(which wget) 

Mi ha dato

/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

Assicurarsi di non avere impostato 'DYLD_LIBRARY_PATH'. Può causare problemi come questi e in genere non è necessario e attivamente dannoso su OS X (come in questo caso). – neverpanic

risposta

10

A quanto pare hai costruito e installato una copia di wget localmente mentre hai installato libiconv da MacPorts così link dinamicamente a quella libreria che hai rimosso. Se si desidera rimuovere tutte le tracce di MacPorts, è necessario ricostruire quella copia di wget.

In caso contrario, è possibile installare una copia di wget con MacPorts che installerà anche tutte le dipendenze come libiconv.

sudo port selfupdate 
sudo port clean wget 
sudo port install wget 

Oppure, invece di wget, è possibile utilizzare curl che rifornisce di Apple con OS X.

UPDATE: Sulla base della sua aggiornamento, sembra che si sta utilizzando un MacPorts-installato wget. In qualche modo sei riuscito a far sì che le dipendenze non si sincronizzassero. (Perché usare port -fp uninstall installed?) Vi proponiamo ora provare:

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

per imporre un aggiornamento del libiconv alla versione corrente.

AGGIORNAMENTO [2014-12]: questo problema può essere dovuto anche a un file di porta MacPorts incompleto che non registra la dipendenza dalla porta wget su libiconv. Ho opened an issue a riguardo. [...] E il progetto MacPorts risponde che questo potrebbe essere il risultato di non seguire le istruzioni di migrazione di MacPorts durante l'aggiornamento a una nuova versione di OS X; c'è un MacPorts problem hotlist entry for libiconv compatibilities here.

In ogni caso, ciò che può funzionare è reinstallare wget dalla fonte.

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

Se il problema persiste, si consiglia di leggere the migration instructions e assicurarsi di aver reinstallato tutte le porte dopo l'aggiornamento.

+0

Grazie mille. Ho fatto quello che hai scritto. Ma sfortunato ho visto di nuovo l'errore. Quando eseguo 'port installed' per controllare libiconv, è libiconv @ 1.14_0 (attivo). E quando eseguo il comando curl, ho lo stesso messaggio :( – ikebukuro

+0

Grazie! Ho provato il tuo metodo. Ma il risultato è lo stesso. Forse qualcosa di sbagliato nel mio pc. Ma grazie lo stesso. – ikebukuro

+1

La risposta accettata non è corretta e non risolve il problema. –

Problemi correlati