ติดตั้งแล้วไม่ได้เชื่อมโยง


86

หมายเหตุ: ฉันใช้เชลล์ไม่ค่อยเก่ง

ฉันกำลังพยายามติดตั้งValgrindโดยใช้brewYosemite

brew install --HEAD valgrind

ในตอนท้ายฉันได้รับข้อผิดพลาดเกี่ยวกับการเชื่อมโยงดังนั้นเมื่อฉันพยายามติดตั้งใหม่ฉันได้รับ:

คำเตือน: valgrind-HEAD ติดตั้งแล้วมันไม่ได้เชื่อมโยง

เห็นได้ชัดว่าฉันได้ติดตั้งแล้ว จากนั้นตามคำถามและคำตอบ SO อื่น ๆ ฉันลอง:

brew link valgrind

ดูเหมือนจะแก้ปัญหาของคนอื่นด้วยการเชื่อมโยงซอฟต์แวร์ที่ติดตั้งไว้แล้ว แต่สิ่งนี้ทำให้ฉันมีข้อผิดพลาด:

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

ฉันพยายามอัปเดตด้วยbrewแต่ก็ไม่สามารถแก้ปัญหาได้ หากไม่สามารถเขียนได้อาจsudoจะอนุญาตให้ฉัน แต่ฉันไม่ต้องการใช้sudoโดยไม่รู้ว่ากำลังทำอะไรอยู่

เกิดอะไรขึ้นและจะแก้ไขได้อย่างไร

คำตอบ:


103

ดูเหมือนปัญหาการอนุญาต ฉันจะลองทำสิ่งนี้

chmod 755 /usr/local/lib/pkgconfig

สิ่งนี้ควรทำให้พร้อมใช้งานแล้วลอง

brew link valgrind

หากไม่ได้ผลฉันจะลองตรวจสอบดู

brew doctor

5
ฉันใช้brew doctorและตามคำแนะนำจากนั้นใช้chownสองครั้งเพื่อแก้ปัญหา
yanzi1225627

2
@ yanzi1225627 ทำไมถึงสองครั้ง?
Greg Hilston

31

เรียกใช้ครั้งแรก

brew link <package>

หากมีข้อผิดพลาดให้ลองทำการวินิจฉัยอัตโนมัติ

brew doctor

brew doctor แสดงรายการปัญหาที่อาจนำไปสู่ข้อผิดพลาดในกระบวนการติดตั้ง

ในการแก้ไขปัญหาในกรณีของไฟล์ที่ขัดแย้งกันให้เรียกใช้เพื่อรับรายการการดำเนินการทั้งหมดที่จะดำเนินการโดยการเขียนทับโดยไม่ต้องดำเนินการ

ในการแสดงรายการไฟล์ทั้งหมดที่จะถูกลบ:

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

ตามมาด้วยการทำงานนี้ซึ่งจะดำเนินการเขียนทับสมมติว่าคุณรู้สึกว่าการกระทำที่ดำเนินการโดยการเขียนทับจะใช้ระบบของคุณขึ้นรัฐมีเสถียรภาพ

ในการบังคับลิงก์และเขียนทับไฟล์ที่ขัดแย้งกันทั้งหมด:

 brew link --overwrite <package>

13

หากวิธีแก้ปัญหาข้างต้นไม่ได้ผลให้ลองทำเช่นนี้

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

3

ในกรณีของฉันหมอชงทำให้ถูกต้อง ในบางจุด / usr / local / lib / pkgconfig ถูกกำหนดให้เป็นของrootแทนที่จะเป็นบัญชีของฉัน วิธีการรักษาที่กำหนดใช้ได้ผล -

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

2

ฉันมีปัญหาเดียวกันและฉันแก้ไขด้วยแนวทางแก้ไขถัดไป: เรียกใช้brew doctorจาก Terminal เพื่อตรวจสอบข้อผิดพลาดทั้งหมด

จากนั้นเรียกใช้คำสั่งถัดไป:

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

หลังวิ่ง:

brew link <package_name>

1

ประเภท

link valgrind

มันจะแสดงข้อผิดพลาดที่ไม่สามารถเชื่อมโยงได้เนื่องจากไดเรกทอรีดังกล่าวไม่สามารถเขียนได้ เจ๋งเราทำให้มันเขียนได้แล้ว ประเภท

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

หากไดเรกทอรีไม่สามารถเขียนได้คุณจะไม่สามารถเปลี่ยนสิทธิ์และทำให้สามารถเขียนได้ ซูโดจะทำให้การดำเนินการนี้เป็นไปได้ chmod จะเปลี่ยนโหมดและทำให้ผู้ใช้ (a) ทั้งหมดสามารถเขียน (w) ได้

ถัดไปคุณจะได้รับแจ้งให้พิมพ์รหัสผ่านระบบของคุณ หลังจากนี้ให้พิมพ์อีกครั้ง

link valgrind

และจะได้ผลในครั้งนี้


1

นี่คือสิ่งที่ฉันลองแล้วและได้ผล:

$ 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.

มองหาpkgconfig: (หลังchmod 750)

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

ฉันพยายามchownดังต่อไปนี้:

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

ควรมีลักษณะดังนี้:

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

หลังจากลองแล้ว:

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

0

ฉันมีปัญหาที่คล้ายกัน

$ brew ติดตั้ง sqlite กำลังอัปเดต Homebrew ... ==> Homebrew ที่อัปเดตอัตโนมัติ! อัปเดต 1 tap (homebrew / core) ไม่มีการเปลี่ยนแปลงสูตร

คำเตือน: sqlite-3.17.0 ติดตั้งแล้วมันไม่ได้เชื่อมโยง

ฉันพยายามเชื่อมโยง

$ brew link sqlite คำเตือน: sqlite เป็นถังเท่านั้นและต้องเชื่อมโยงกับ --force โปรดทราบว่าการทำเช่นนั้นอาจรบกวนการสร้างซอฟต์แวร์

จากนั้นทำด้วยกำลัง

$ brew link --force sqlite การเชื่อมโยง /usr/local/Cellar/sqlite/3.17.0 ... สร้าง symlink แล้ว 8 รายการ


0

ฉันมีปัญหาเดียวกันเกี่ยวกับการอนุญาต แต่หลังจากฉันให้สิทธิ์แล้วก็ยังคงได้รับอนุญาตผิดพลาด และที่นี่ก่อนอื่น:

brew unlink valgrind

แล้ว,

brew link valgrind

หวังว่าจะช่วยได้


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

คำสั่งเดียวที่ใช้ได้ผลสำหรับฉันหลังจากอัปเกรดเป็น MAC OS Mojave 10.14.6

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.