วิธีหลีกเลี่ยง“ ไม่สามารถโหลดไฟล์ - utils / popen” จาก homebrew บน OSX


327

ฉันได้รับข้อผิดพลาดเมื่อฉันทำงาน brewใน terminal:

 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- utils/popen (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/utils.rb:6:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/global.rb:9:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/brew.rb:16:in `<main>'

นี่คือการตั้งค่าอัญมณีของฉัน:

- RUBYGEMS VERSION: 2.0.14
- RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
  - ruby
  - universal-darwin-13
- GEM PATHS:
  - /Library/Ruby/Gems/2.0.0
  - /Users/ronaldkwan/.gem/ruby/2.0.0
  - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
- GEM CONFIGURATION:
  - :update_sources => true
  - :verbose => true
  - :backtrace => false
  - :bulk_threshold => 1000

1
คุณเพิ่มข้อมูลได้ไหม คุณรันคำสั่งอะไรกันแน่?
Unihedron

ฉันเพิ่งพิมพ์ "ชง" เป็นยูนิกซ์
kerokero

จะเกิดอะไรขึ้นเมื่อคุณเรียกใช้brew doctor?
grenierm5

ข้อผิดพลาดเดียวกัน นี่คือการตั้งค่าอัญมณี env ของฉัน
kerokero

ดูเหมือนว่าการติดตั้งทับทิมของคุณจะไม่สมบูรณ์ ลองติดตั้งใหม่หรือใช้การติดตั้งทับทิมอื่น
gorootde

คำตอบ:


803

ปัญหาส่วนใหญ่เกิดขึ้นหลังจากอัพเดต OS X เป็น El Capitan (OS X 10.11) หรือ macOS Sierra (macOS 10.12)

นี่เป็นเพราะปัญหาการอนุญาตไฟล์กับกระบวนการ SIP ใหม่ของ El Capitan หรือใหม่กว่า ลองเปลี่ยนการอนุญาตสำหรับ/usr/localไดเรกทอรี:

$ sudo chown -R $(whoami):admin /usr/local  

หากยังใช้งานไม่ได้ให้ใช้ขั้นตอนเหล่านี้ภายในเซสชันเทอร์มินัลและทุกอย่างจะเรียบร้อยดี:

cd /usr/local/Library/Homebrew  
git reset --hard  
git clean -df
brew update

อาจเป็นเพราะ homebrew ไม่ได้รับการอัพเดต


39
ฉันมีปัญหาที่เกิดจากการอัพเดท El Capitan วิธีนี้แก้ปัญหาได้ ขอบคุณ
Vivek

4
เช่นเดียวกันที่นี่อัพเกรดเป็น El Capitan ยากจนฉันต้องรีเซ็ตการอนุญาตก่อนจากนั้นจึงเรียกใช้คำสั่ง git และการอัพเดทการทำงาน ขอบคุณ
Bob

4
นี่เป็นคำตอบที่ถูกต้องหากคุณประสบปัญหาดังกล่าวหลังจากอัปเกรดเป็น El Capitan :)
chemic

3
มีปัญหานี้หลังจากการอัพเกรดMacOS เซีย สิ่งนี้แก้ไขได้แล้วขอบคุณ! แม้ว่า/usr/localตอนนี้ดูเหมือนจะไม่อนุญาตให้เปลี่ยนสิทธิ์ก็ตาม "Homebrew ไม่จำเป็นต้องเป็นเจ้าของ / usr / local อีกต่อไปหากคุณต้องการคุณสามารถกลับ/usr/localไปเป็นเจ้าของเริ่มต้นด้วย: sudo chown root:wheel /usr/local"
Bert

5
วิธีที่สองทำงานให้ฉัน ฉันแค่ต้องการค้นหาที่HOMEBREWตั้งของไดเรกทอรี ในกรณีของฉัน:/usr/local/Library/Homebrew
Alexander

378

ก่อนอื่นให้เปิดเซสชันเทอร์มินัลแล้วเรียกใช้:

cd /usr/local/
git status

เพื่อดูว่า Homebrew สะอาด

หากสกปรกให้เรียกใช้:

git reset --hard && git clean -df

แล้วก็

brew doctor
brew update

หากยังใช้งานไม่ได้ให้ลองทำในเซสชั่นของคุณ:

sudo rm /System/Library/Frameworks/Ruby.framework/Versions/Current
sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/1.8 /System/Library/Frameworks/Ruby.framework/Versions/Current

สิ่งนี้จะบังคับให้ Homebrew ใช้ Ruby 1.8 จากการติดตั้งระบบ


7
อาจเป็นคำตอบที่ดี แต่ BTW ฉันได้รับข้อผิดพลาดอื่น ๆ เมื่อใช้คำสั่งทั้งสองให้ (ฉันพูดถึงกรณีที่ทุกคนต้องการที่จะครอบคลุมสถานการณ์ต่อไปนี้): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current:
PandaWood

4
ฉันเพิ่งติดตั้ง homebrew ด้วยเวอร์ชันใหม่และเริ่มทำงานได้ ตรวจสอบโฮมเพจของ homebrew พร้อมกับลิงก์เพื่อติดตั้งและเมื่อคุณลองมันจะบ่นว่า homebrew ติดตั้งแล้วและสอนวิธีถอนการติดตั้ง
pertz

ดังนั้นการถอนการติดตั้ง / ติดตั้งทำให้ Homebrew ทำงานอีกครั้งสำหรับฉัน นอกจากนี้ยังลบทุกอย่างที่ติดตั้งโดยทั่วไปแล้วระบบของฉันจะถูกทำลาย ดังนั้นจึงไม่ใช่ทางออกที่ดี
Evan Knowles

หากคุณได้รับข้อผิดพลาดเกี่ยวกับทับทิมและคุณใช้ RVM ลองใช้rvm use systemเพื่อให้แน่ใจว่าคุณใช้ทับทิมของ Mac OS X เมื่อทำงานbrew update
DavidJ

โปรดทราบว่ารูบีเริ่มต้นของ OS X เวอร์ชันล่าสุดคือ 2.0 ไม่ใช่ 1.8
bfontaine

82

ถอนการติดตั้ง homebrew:

 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

จากนั้นติดตั้งใหม่

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

คำเตือน: สคริปต์นี้จะลบ: / Library / Caches / Homebrew / - thks benjaminsila


1
ฉันรันการถอนการติดตั้ง Homebrew และติดตั้งใหม่ แก้ไขปัญหา @OsTa ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" คำเตือน: สคริปต์นี้จะลบ: / Library / Caches / Homebrew /
BenJaminSila

3
เรียงจากวิธีปืนลูกซอง แต่วิธีนี้ทำงานได้ง่ายกว่าความพยายามในการจัดการสิทธิ์การใช้ไฟล์ ...
BenKarl

1
ทำงานให้ฉันในระบบที่อัพเกรดเป็น 10.12 (Sierra) หลังจากถอนการติดตั้ง / ติดตั้งใหม่ฉันสามารถเรียกใช้ 'ชงหมอ' และทำตามคำแนะนำที่นั่นเพื่อแก้ไขปัญหาสิทธิ์ไม่กี่ ทำงานได้ดีในขณะนี้
codesponge

หลังจากที่ฮาร์ดไดรฟ์ล่มที่เก็บข้อมูลคอมไพล์พื้นฐานของฉันเสียหายและในขณะที่การรีเซ็ต git จะใช้งานไม่ได้ อย่างไรก็ตามฉันต้องติดตั้งแพ็คเกจที่ติดตั้งใหม่ทั้งหมด
bsumirak

26

ในกรณีของฉันฉันแค่ต้องการลบการปฏิบัติการของ Homebrew โดยใช้:

sudo rm -f `which brew`

จากนั้นติดตั้ง Homebrew ใหม่ :

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2
ในกรณีที่คุณติดหลังจากนี้ในชงติดตั้ง / ถอนการติดตั้งวงให้ใช้ลิงค์ต่อไปนี้ - github.com/Homebrew/homebrew/issues/44460
fortm

คุณได้รับ meesage นี้ลองใช้คำสั่งที่ 2 (ซึ่งดูเหมือนจะบ่งบอกถึงบางสิ่งที่ผิดพลาด แต่ไม่ใช่ข้อผิดพลาด)? - เนื้อหาปัจจุบันของ / usr / local มีถังใต้ดิน CODEOFCONDUCT.md CONTRIBUTING.md ฯลฯ กรอบคอมไพล์ ได้แก่ ห้องสมุด lib LICENSE.txt การเลือกหุ้น Qt4.7 README.md SUPPORTERS.md var .git .gitignore
PandaWood

@PandaWood ไม่ฉันไม่ได้ทำ เนื้อหาของข้อความแสดงข้อผิดพลาดที่คุณแสดงด้วย 'ข้อความนี้' ในความคิดเห็นของคุณคืออะไร
Inanc Gumus

@deeperx ทุกอย่างหลังจาก "-" ในท้ายที่สุดฉันต้องถอนการติดตั้งชงและติดตั้งอีกครั้ง
PandaWood

@PandaWood คุณใช้เครื่องหมายจุลภาคที่ถูกต้องหรือไม่ คุณสามารถคัดลอกวางได้โดยตรงหรือไม่
Inanc Gumus

24

หลังจากอัปเดตเป็น El Capitan แล้ว/usr/localจะมีroot:wheelสิทธิ์

เปลี่ยนสิทธิ์กลับเป็นผู้ใช้โดยใช้:

sudo chown -R $(whoami):admin /usr/local

และ:

brew doctor && brew update

นี่ช่วยฉันให้ Homebrew ทำงานอีกครั้ง


2
มันค่อนข้างอันตรายใช่ไหม
FRAGA

การอนุญาตที่/usr/localถูกเปลี่ยนแปลงในระบบปฏิบัติการด้วยเหตุผลด้านความปลอดภัย - เพียงเพราะคุณ "คืนสิทธิ์เหมือนเมื่อก่อน" ไม่ได้หมายความว่าเป็นเรื่องดี
ลีแอนน์

8

ครั้งแรกที่ฉันดำเนินการ:

sudo chown -R $(whoami):admin /usr/local

แล้ว:

cd $(brew --prefix) && git fetch origin && git reset --hard origin/master

1
FYI, Homebrew ติดตั้งของฉันอยู่ที่เพื่อให้ฉันได้ใช้/usr/local/Homebrew/ cd $(brew --prefix)/Homebrew
Joshua Pinter

3

ปัญหานี้ควรได้รับการแก้ไขใน Homebrew รุ่นใหม่ล่าสุด ลองติดตั้งใหม่ซึ่งอธิบายไว้ในหน้าแรกของHomebrew


1

สำหรับฉันแล้วรู้สึกเหมือนว่าคุณไม่มีไฟล์ส่วนหัวสำหรับ popen ซึ่งเป็นไลบรารี่ของระบบ C

ตรวจสอบว่าคุณติดตั้ง xcode สำเร็จแล้วด้วยเครื่องมือบรรทัดคำสั่งและยอมรับใบอนุญาตหรือไม่

ดูหัวข้อนี้สำหรับข้อมูลเพิ่มเติม: วิธีการติดตั้งเครื่องมือบรรทัดคำสั่ง Xcode


0

ในการกู้คืนการตั้งค่า Homebrew ของคุณลอง:

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.