Đã cài đặt, chỉ là chưa được liên kết


86

Lưu ý: Tôi không giỏi sử dụng shell.

Tôi đang cố gắng cài đặt Valgrindbằng brewYosemite.

brew install --HEAD valgrind

Về phần cuối, tôi gặp lỗi liên quan đến liên kết nên khi cố gắng cài đặt lại, tôi nhận được:

Cảnh báo: valgrind-HEAD đã được cài đặt, chỉ là nó chưa được liên kết

Vì vậy, dường như tôi đã cài đặt nó. Sau đó, dựa trên các câu hỏi và câu trả lời SO khác, tôi đã thử:

brew link valgrind

Điều này dường như giải quyết vấn đề của người khác với việc liên kết một phần mềm đã được cài đặt nhưng điều này đã gây ra cho tôi một lỗi:

Linking /usr/local/Cellar/valgrind/HEAD... 
Error: Could not symlink lib/pkgconfig/valgrind.pc
/usr/local/lib/pkgconfig is not writable.

Tôi cũng đã cố gắng cập nhật brewnhưng nó không giải quyết được vấn đề. Nếu nó không thể ghi, có thể sudosẽ cho phép tôi nhưng tôi không muốn sử dụng sudomà không biết chính xác những gì tôi đang làm.

Điều gì đang xảy ra và làm thế nào để tôi sửa chữa nó?

Câu trả lời:


103

Có vẻ như vấn đề về quyền. Tôi sẽ thử làm điều này

chmod 755 /usr/local/lib/pkgconfig

Điều này sẽ làm cho điều đó có sẵn, sau đó thử

brew link valgrind

Nếu điều đó không hiệu quả, tôi sẽ thử kiểm tra nó

brew doctor

5
Tôi sử dụng brew doctor, và theo hướng dẫn, sau đó sử dụng chownhai lần để giải quyết vấn đề.
yanzi1225627

2
@ yanzi1225627 tại sao lại 2 lần?
Greg Hilston

31

Lần chạy đầu tiên

brew link <package>

Nếu nó báo lỗi, hãy thử chẩn đoán tự động

brew doctor

brew doctor đưa ra danh sách các vấn đề có thể dẫn đến lỗi trong quá trình cài đặt.

Để khắc phục sự cố trong trường hợp các tệp xung đột, hãy chạy để nhận danh sách tất cả các hành động sẽ được thực hiện bằng cách ghi đè mà không thực sự thực hiện chúng.

Để liệt kê tất cả các tệp sẽ bị xóa:

  brew link --overwrite --dry-run <package>

tiếp theo là lần chạy này sẽ thực hiện ghi đè, giả sử bạn cảm thấy rằng các hành động được thực hiện bằng cách ghi đè sẽ đưa hệ thống của bạn đến trạng thái ổn định hơn .

Để buộc liên kết và ghi đè tất cả các tệp xung đột:

 brew link --overwrite <package>

13

Nếu không có giải pháp nào ở trên hoạt động, hãy thử cách này.

sudo chown -R $USER:admin /usr/local
brew link <package-name>

3

Trong trường hợp của tôi, bác sĩ bia đã hiểu đúng. Tại một số điểm / usr / local / lib / pkgconfig được thiết lập để được sở hữu bởi gốc chứ không phải là tài khoản của tôi. Biện pháp khắc phục theo quy định đã hoạt động -

sudo chown -R $(whoami) /usr/local/lib/pkgconfig

2

Tôi đã gặp vấn đề tương tự và tôi đã giải quyết bằng giải pháp tiếp theo: Chạy bác sĩ bia từ Terminal để kiểm tra tất cả các lỗi của bạn

sau đó chạy lệnh tiếp theo:

sudo chown -R $USER:admin /usr/local/bin /usr/local/etc /usr/local/sbin /usr/local/share

sau khi chạy:

brew link <package_name>

1

Kiểu

link valgrind

Nó sẽ hiển thị một lỗi rằng nó không thể được liên kết vì thư mục such-and-such không thể ghi được. Tuyệt vời, chúng tôi làm cho nó có thể ghi được bây giờ. Kiểu

sudo chmod a+w the/directory/shown/as/error

Nếu thư mục không thể ghi, bạn sẽ không thể thay đổi quyền của nó và làm cho nó có thể ghi được. Sudo sẽ thực hiện thao tác này. chmod sẽ thay đổi chế độ và sẽ làm cho tất cả (a) người dùng có thể viết (w) nó.

Tiếp theo, bạn sẽ được nhắc nhập mật khẩu hệ thống của mình. Sau đó, nhập lại

link valgrind

và nó sẽ hoạt động lần này.


1

Đây là những gì tôi đã thử và nó hoạt động:

$ brew link --overwrite sdl
Linking /usr/local/Cellar/sdl/1.2.15...
Error: Could not symlink lib/pkgconfig/sdl.pc
/usr/local/lib/pkgconfig is not writable.

Đã tìm pkgconfig: (sau chmod 750)

drwxr-xr-x   4 root           wheel   136B Mar 30  2013 pkgconfig

Tôi đã thử chownnhư dưới đây:

$ sudo chown -R  avkashchauhan:admin /usr/local/lib/pkgconfig

nó sẽ giống như dưới đây:

drwxr-xr-x   4 avkashchauhan  admin   136B Mar 30  2013 pkgconfig

Sau khi tôi thử nó:

$ brew link sdl                                                                                                                                                                                                                    
Linking /usr/local/Cellar/sdl/1.2.15... 182 symlinks created

0

Tôi gặp vấn đề tương tự,

$ brew install sqlite Đang cập nhật Homebrew ... ==> Homebrew tự động cập nhật! Cập nhật 1 lần nhấn (homebrew / lõi). Không có thay đổi nào đối với công thức.

Cảnh báo: sqlite-3.17.0 đã được cài đặt, chỉ là nó chưa được liên kết.

Tôi đã cố gắng liên kết nó,

$ brew link sqlite Cảnh báo: sqlite chỉ là keg và phải được liên kết với --force Lưu ý rằng làm như vậy có thể ảnh hưởng đến việc xây dựng phần mềm.

Sau đó, làm điều đó bằng vũ lực,

$ brew link --force sqlite Linking /usr/local/Cellar/sqlite/3.17.0 ... Đã tạo 8 liên kết tượng trưng


0

Tôi đã gặp vấn đề tương tự về quyền, nhưng sau khi tôi cho phép, quyền vẫn bị lỗi. Và tôi làm ở đây, đầu tiên:

brew unlink valgrind

và sau đó,

brew link valgrind

hy vọng điều này giúp đỡ.


0
brew install cocoapods --build-from-source
brew link --overwrite cocoapods

Các lệnh duy nhất hoạt động với tôi sau khi nâng cấp lên MAC OS Mojave 10.14.6

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.