Cách tránh không thể tải tập tin như vậy - utils / popen từ homebrew trên OSX


327

Tôi đang gặp lỗi khi chạy brewtrong thiết bị đầu cuối:

 /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>'

Đây là các cài đặt đá quý của tôi:

- 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
Bạn có thể thêm thông tin? Lệnh nào bạn đã chạy chính xác?
Unihedron

tôi vừa gõ "brew" vào unix
kerokero

Điều gì xảy ra khi bạn chạy brew doctor?
grenierm5

cùng một lỗi. đây là cài đặt đá quý env của tôi
kerokero

Có vẻ như cài đặt ruby ​​của bạn không đầy đủ. Hãy thử cài đặt lại hoặc sử dụng cài đặt ruby ​​khác.
gorootde

Câu trả lời:


803

Vấn đề chủ yếu xảy ra sau khi cập nhật OS X lên El Capitan (OS X 10.11) hoặc macOS Sierra (macOS 10.12).

Điều này là do sự cố cấp phép tệp với quy trình SIP mới của El Capitan hoặc sau này của macOS . Hãy thử thay đổi quyền cho /usr/localthư mục:

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

Nếu nó vẫn không hoạt động, hãy sử dụng các bước này trong phiên cuối và mọi thứ sẽ ổn:

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

Điều này có thể là do homebrew không được cập nhật.


39
Tôi đã có vấn đề gây ra bởi cập nhật El Capitan. Điều này đã giải quyết vấn đề. Cảm ơn.
Vivek

4
Tương tự ở đây, nâng cấp lên El Capitan đã phá vỡ nó, tôi phải thiết lập lại quyền trước tiên và sau đó chạy các lệnh git và cập nhật brew hoạt động. Cảm ơn.
Bob

4
Đây là câu trả lời đúng nếu bạn đang phải đối mặt với vấn đề đó sau khi nâng cấp lên El Capitan :)
hoá học

3
Có vấn đề này sau khi nâng cấp lên macOS Sierra . Điều này đã giải quyết nó, cảm ơn! Mặc dù vậy, việc thay đổi quyền trên /usr/localdường như không được yêu cầu ngay bây giờ. "Homebrew không còn cần phải có quyền sở hữu / usr / local. Nếu bạn muốn bạn có thể quay lại /usr/localquyền sở hữu mặc định của nó với: sudo chown root:wheel /usr/local"
Bert

5
Phương pháp thứ hai làm việc cho tôi. Tôi chỉ cần tìm nơi HOMEBREWthư mục được đặt. Trong trường hợp của tôi:/usr/local/Library/Homebrew
Alexander

378

Đầu tiên, mở một phiên cuối và chạy:

cd /usr/local/
git status

để xem Homebrew có sạch không.

Nếu nó bẩn, hãy chạy:

git reset --hard && git clean -df

sau đó

brew doctor
brew update

Nếu nó vẫn bị hỏng, hãy thử điều này trong phiên của bạn:

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

Điều này sẽ buộc Homebrew sử dụng Ruby 1.8 từ cài đặt của hệ thống.


7
Có lẽ là một câu trả lời tốt, nhưng BTW tôi gặp phải các lỗi khác khi chạy cả hai lệnh (tôi đề cập đến việc ai đó muốn bao gồm kịch bản tiếp theo này): - rm: / System / L Library / Frameworks / Uby.framework / Warions / C hiện tại: Hoạt động không được phép
PandaWood

4
Tôi chỉ cần cài đặt lại homebrew với một phiên bản mới và nó bắt đầu hoạt động. Kiểm tra trang chủ homebrew với liên kết để cài đặt và khi bạn dùng thử, nó sẽ phàn nàn rằng homebrew đã được cài đặt và hướng dẫn bạn cách gỡ cài đặt.
pertz

Vì vậy, việc gỡ cài đặt / cài đặt lại khiến Homebrew hoạt động trở lại với tôi. Nó cũng xóa mọi thứ nó đã cài đặt, về cơ bản là phá hỏng hệ thống của tôi. Vì vậy, không phải là một giải pháp tuyệt vời.
Evan Knowles

Nếu bạn gặp lỗi với ruby ​​và bạn đang sử dụng RVM, hãy thử phát hành rvm use systemđể đảm bảo bạn đang sử dụng ruby ​​của Mac OS X khi chạybrew update
DavidJ

Lưu ý rằng Ruby mặc định trên các phiên bản OS X gần đây là 2.0, không phải 1.8.
bfontaine

82

Gỡ cài đặt homebrew:

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

Sau đó cài đặt lại

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

Cảnh báo: Tập lệnh này sẽ xóa: / Library / Caches / Homebrew / - thks benj vitaminila


1
Tôi chạy gỡ cài đặt Homebrew và sau đó cài đặt lại. Đã khắc phục sự cố. @OsTa ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" Cảnh báo: Tập lệnh này sẽ xóa: / Library / Caches / Homebrew /
BenJaminSila

3
Cách tiếp cận shotgun nhưng cách này hiệu quả hơn so với cố gắng quản lý quyền truy cập tệp ...
BenKarl

1
Làm việc cho tôi Trên một hệ thống được nâng cấp lên 10.12 (Sierra), sau khi gỡ cài đặt / cài đặt lại, tôi có thể chạy 'brew Doctor' và làm theo hướng dẫn ở đó để khắc phục một số vấn đề về quyền. Làm việc tốt ngay bây giờ
Codeponge

Sau khi ổ cứng bị hỏng, kho git bên dưới của tôi đã bị hỏng và do đó thiết lập lại git sẽ không hoạt động, un- / cài đặt lại đã làm. Tuy nhiên, tôi đã phải cài đặt lại tất cả các gói đã cài đặt của mình.
bsumirak

26

Trong trường hợp của tôi, tôi chỉ cần xóa tệp thực thi của Homebrew bằng cách sử dụng:

sudo rm -f `which brew`

Sau đó cài đặt lại Homebrew:

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

2
Trong trường hợp bạn gặp khó khăn sau này trong brew cài đặt / gỡ bỏ cài đặt vòng, sử dụng sau đây liên kết - github.com/Homebrew/homebrew/issues/44460
fortm

Bạn có nhận được thông báo này khi thử lệnh thứ 2 (dường như là một dấu hiệu cho thấy có gì đó không ổn, mặc dù không phải là lỗi)? - Nội dung hiện tại của / usr / local là bin Cellar CODEOFCONDUCT.md CONTRIBUTING.md vv Khung git bao gồm lib Thư viện license.txt opt Qt4.7 README.md phần SUPPORTERS.md var .git .gitignore
PandaWood

@PandaWood không, tôi đã không. nội dung của thông báo lỗi mà bạn mô tả với 'thông báo này' trong bình luận của bạn là gì?
Inanc Gumus

@deeperx Mọi thứ sau dấu "-". Cuối cùng, tôi phải gỡ cài đặt brew và cài đặt lại
PandaWood

@PandaWood Bạn có sử dụng dấu phẩy đúng không? Bạn có thể sao chép dán nó ở đây trực tiếp?
Inanc Gumus 22/2/2016

24

Sau khi cập nhật lên El Capitan, /usr/localđãroot:wheel quyền.

Thay đổi quyền trở lại cho người dùng bằng cách sử dụng:

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

và:

brew doctor && brew update

Điều này giúp tôi có được Homebrew hoạt động trở lại.


2
nó không nguy hiểm lắm sao?
FRAGA

Quyền /usr/localđược thay đổi trong HĐH vì lý do bảo mật - vì vậy, chỉ vì bạn đã "trả lại quyền như trước" không có nghĩa là đó là một việc nên làm.
leanne

8

Đầu tiên tôi thực hiện:

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

Sau đó:

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

1
FYI, cài đặt Homebrew của tôi là /usr/local/Homebrew/vì vậy tôi phải sử dụng cd $(brew --prefix)/Homebrew.
Joshua Pinter

3

Vấn đề này cần được khắc phục trong phiên bản mới nhất của Homebrew. Hãy thử cài đặt lại, được mô tả trên trang chủ Homebrew .


1

Đối với tôi có cảm giác như bạn đã thiếu các tệp tiêu đề cho popen, đó là một thư viện hệ thống C.

Kiểm tra xem bạn đã cài đặt xcode thành công với các công cụ dòng lệnh và đã chấp nhận giấy phép.

Xem chủ đề này để biết thêm thông tin: Cách cài đặt Công cụ dòng lệnh Xcode


0

Để khôi phục thiết lập Homebrew của bạn, hãy thử điều này:

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
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.