กระบวนการ Homebrew อื่นที่ใช้งานอยู่กำลังดำเนินการอยู่


91

เมื่อฉันพยายามทำสิ่งนี้:

brew install node

ฉันได้รับข้อความนี้:

 /usr/local/Homebrew/Library/Homebrew/utils/lock.sh: line 19: /usr/local/var/homebrew/locks/update: Permission denied
-e:1:in `initialize': Bad file descriptor (Errno::EBADF)
    from -e:1:in `new'
    from -e:1:in `<main>'
Error: Another active Homebrew process is already in progress.
Please wait for it to finish or terminate it to continue.
Error: Permission denied - /usr/local/var/homebrew/locks/node.brewing

มีความคิดเกี่ยวกับวิธีแก้ปัญหานี้หรือไม่?

คำตอบ:


211

หากคำตอบข้างต้นไม่สามารถแก้ปัญหาของคุณได้ให้ลองลบการล็อกกระบวนการ homebrew ด้วยคำสั่งนี้:

rm -rf /usr/local/var/homebrew/locks

1
ทำไมไม่อยู่ที่ปลอดภัยกับfor file in LS * ล็อค; do mv $file $file.old; done?
isomorphismes

1
ขอบคุณที่สมบูรณ์แบบ!
lizziepika

ไม่แนะนำให้ทำเช่นนี้ ข้อผิดพลาดอยู่ในสิทธิ์ที่ไม่ถูกต้อง locksไฟล์มีวัตถุประสงค์และลบมันเป็นไม่ได้เป็นตัวเลือกที่ปลอดภัยที่สุด
Kamafeather

1
ฉันระบุให้ลองทำเช่นนี้หากคำตอบอื่นไม่ได้ผล ฉันอ้างถึงโซลูชันของ @ kalibrain ฉันต้องทำทั้งสองอย่าง
ชอบ

48

ตามที่เธรดนี้แนะนำในบางจุดปัญหาของฉันคือเรียกใช้คำสั่ง brew ด้วยสิทธิ์ sudo เป็นครั้งแรก สิ่งนี้ทำให้ชงพยายามเข้าถึงไฟล์และโฟลเดอร์ที่มีสิทธิ์พิเศษและล้มเหลว หากเป็นเช่นนั้นให้รันคำสั่งเหล่านี้แล้วลองติดตั้งโหนดอีกครั้ง

sudo chown -R "$USER":admin /usr/local

brew cleanup


ใช่ปัญหาเกิดขึ้นหลังจากย้ายไฟล์เพื่อสำรองข้อมูลแล้วกู้คืน เจ้าของไฟล์ถูกตั้งค่าเป็น GID ที่ไม่รู้จัก การกู้คืนโดยchownนำฟังก์ชันทั้งหมดกลับมาโดยไม่มีข้อผิดพลาด
Kamafeather

ls -la /usr/local/นอกจากนี้ยังให้ความมั่นใจในการอนุญาตที่ได้รับการแก้ไขด้วย หากไม่เป็นเช่นนั้นให้ลองใส่เครื่องหมายดอกจันเพื่อบ่งบอกถึงไฟล์ย่อยทั้งหมด (เช่นsudo chown -R "$USER":admin /usr/local/*)
Kamafeather

23

เพียงแค่ปิดเทอร์มินัลแล้วเปิดใหม่อีกครั้ง


ซึ่งอาจใช้ได้ผลในบางกรณีเท่านั้น เหตุผลก็คือหากคุณเพียงแค่ปิดเทอร์มินัลอาจไม่สามารถถอดล็อกที่สร้างขึ้นบน/usr/local/var/homebrew/locksพา ธ ได้ ดังนั้นในครั้งต่อไปที่คุณเรียกใช้brew updateคุณจะเห็นข้อผิดพลาดที่ให้ไว้ในคำถามนี้
Eranga Heshan

15

เพียงพิมพ์สิ่งต่อไปนี้ในเทอร์มินัลของคุณ:

brew cleanup

สิ่งนี้ควรทำความสะอาดปัญหาต่างๆ ปฏิบัติตามคำสั่งด้วย:

brew doctor

ทุกอย่างเสร็จเรียบร้อย.


10

ในกรณีของฉันบน OSX ฉันขัดจังหวะการติดตั้งโหนดจากนั้นฉันพยายามเริ่มติดตั้งโหนดอีกครั้งดังนั้นฉันจึงได้รับข้อผิดพลาดที่กล่าวถึงในคำถาม
ฉันลองทำตามขั้นตอนด้านล่างจากคำตอบอื่น ๆ :

sudo chown -R "$USER":admin /usr/local

brew cleanup

และ

rm -rf /usr/local/var/homebrew/locks

แต่ข้อความนี้ปรากฏขึ้นอีกครั้งดังนั้นอย่าทราบว่าขั้นตอนข้างต้นช่วยได้หรือไม่

จากนั้นฉันก็ปิดแท็บเทอร์มินัลและเปิดแท็บใหม่

brew install -v node

ใช้เวลา 11 นาทีในการติดตั้งโหนดให้เสร็จสมบูรณ์


1
บนMacOSsudo chown -R "$USER":admin /usr/local/*จะปลอดภัยกว่าที่จะทำ หากไม่มีเครื่องหมายดอกจันฉันไม่ได้รับการขยายที่ถูกต้องและไฟล์ย่อย / - โฟลเดอร์ส่วนใหญ่ไม่ได้สัมผัสด้วยคำสั่ง
Kamafeather

3

เปลี่ยนสิทธิ์ไฟล์จะหลีกเลี่ยงข้อผิดพลาดนี้:

sudo chown <your-username>:admin /usr/local/Homebrew/Library/Homebrew/utils/lock.sh

สำหรับปัญหาการอนุญาตในการติดตั้งหรืออัปเดต homebrew:

เปลี่ยนการตั้งค่าสิทธิ์ homebrew ของคุณ

sudo chown -R <your-username>:admin /usr/local/Homebrew

sudo chown -R <your-username>:admin /usr/local/var/homebrew

จากนั้นเรียกใช้การติดตั้งหรืออัปเดต homebrew


การเปลี่ยนสิทธิ์สำหรับ/usr/local/Homebrewและ/usr/local/var/homebrewเป็นสิ่งที่ช่วยฉันได้อย่าง
แท้จริง

0

ฉันไม่รู้ว่าเกิดอะไรขึ้น เทอร์มินัลที่ใช้งานอยู่เพียงเครื่องเดียวของฉันกำลังรออินพุตไม่มีงานทำงานอยู่เบื้องหลัง ฉันเพิ่งพยายามเรียกใช้การติดตั้ง RVM ที่ล้มเหลวและขอให้ฉันอัปเดต Homebrew แต่นั่นควรจะเสร็จสิ้นเนื่องจากเทอร์มินัลกำลังรออินพุต หลังจากเรียกใช้คำสั่งซ้ำหลายครั้งและสองสามนาทีต่อมาฉันก็หยุดรับข้อความ

นี่คือบน Mac OSX 10.13.6 ที่มี iTerm2

⋊> brew --version
Homebrew 2.1.4
Homebrew/homebrew-core (git revision 97b15a; last commit 2019-06-07)
Homebrew/homebrew-cask (git revision 2a010; last commit 2019-06-07)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.