2012-11-09 41 views
9

Tôi có gỡ bỏ cài đặt cổng từ máy Mac với COMAND này:Cách khắc phục lỗi libiconv trên máy Mac?

sudo port -fp uninstall installed 

Sau đó, khi tôi sử dụng wget để tải về tập tin, nó cho thấy tôi:

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 

Làm thế nào để làm gì?

※ Mac OS X 10.7.5

Addition

Khi tôi chạy

otool -L $(which wget) 

Nó đã cho tôi

/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

Đảm bảo bạn không có tập hợp 'DYLD_LIBRARY_PATH'. Nó có thể gây ra vấn đề như thế này và nói chung là không cần thiết và chủ động gây hại cho OS X (chẳng hạn như trong trường hợp này). – neverpanic

Trả lời

10

Rõ ràng bạn xây dựng và cài đặt một bản sao của wget tại địa phương trong khi bạn đã cài đặt libiconv từ MacPorts liên kết động với thư viện mà bạn đã xóa. Nếu bạn muốn xóa tất cả dấu vết của MacPorts, bạn cần phải tạo lại bản sao của wget.

Nếu không, bạn có thể cài đặt bản sao wget bằng MacPorts cũng sẽ cài đặt tất cả các phụ thuộc như libiconv.

sudo port selfupdate 
sudo port clean wget 
sudo port install wget 

Hoặc, thay vì wget, bạn có thể sử dụng curl mà nguồn cung cấp của Apple với OS X.

UPDATE: Căn cứ vào cập nhật của bạn, nó xuất hiện bạn đang sử dụng một MacPorts cài wget. Bằng cách nào đó bạn đã quản lý để có được các phụ thuộc không đồng bộ. (Tại sao sử dụng port -fp uninstall installed?) Đề nghị bạn bây giờ thử:

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

để buộc một bản nâng cấp của libiconv lên phiên bản hiện hành.

CẬP NHẬT [2014-12]: Xem lại vấn đề này, sự cố cũng có thể do tệp cổng MacPorts chưa hoàn tất không đăng ký phụ thuộc cổng wget trên libiconv. Tôi đã opened an issue về điều đó. [...] Và dự án MacPorts trả lời rằng đây có thể là kết quả của việc không tuân theo hướng dẫn di chuyển MacPorts khi nâng cấp lên bản phát hành mới của OS X; có một số MacPorts problem hotlist entry for libiconv compatibilities here.

Trong mọi trường hợp, những gì có thể hoạt động là cài đặt lại wget từ nguồn.

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

Nếu điều đó không có ích, bạn có thể muốn đọc the migration instructions và đảm bảo bạn đã cài đặt lại tất cả các cổng sau khi nâng cấp.

+0

Cảm ơn bạn rất nhiều.Tôi đã làm những gì bạn đã viết.Nhưng không may mắn thấy lỗi một lần nữa.Khi tôi chạy 'cổng cài đặt' để kiểm tra libiconv, nó là libiconv @ 1.14_0 (hoạt động). Và khi tôi chạy lệnh curl, có một tin nhắn tương tự: ( – ikebukuro

+0

Cảm ơn bạn! Tôi đã thử phương pháp của bạn.Nhưng kết quả là như nhau.Maybe một cái gì đó sai trái trong pc của tôi.But cảm ơn tất cả các bạn như vậy – ikebukuro

+1

Câu trả lời được chấp nhận là không chính xác và không giải quyết vấn đề. –

Các vấn đề liên quan