Làm cách nào để sửa lỗi brew sau khi nâng cấp OSX lên Yosemite?


181

Tôi đã đối mặt với một số vấn đề với Homebrew. Tôi đã nâng cấp lên Yosemite. Sau khi nâng cấp, homebrew dường như bị phá vỡ.

Tôi sẽ chạy bất kỳ lệnh brew và nhận được lỗi này

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 26: /usr/local/Library/brew.rb: Undefined error: 0

Làm thế nào để giải quyết nó?


Tôi vừa nâng cấp từ Mac OS X 10.8 lên 10.10 (Yosemite) và homebrew hoạt động tốt sau khi nâng cấp. Vấn đề này đã được khắc phục hoặc có gì đó khác biệt về việc nâng cấp hệ điều hành của tôi so với những người khác đăng ở đây.
Yitz

Câu trả lời:


239

Tôi quyết định xem xét điều này và thấy rằng có một vấn đề . Vấn đề đã được đóng nhưng không thể chạy đơn giản brew updatevì bạn vẫn sẽ gặp lỗi tương tự.

Vì vậy, đây là những gì bạn cần làm:

cd /usr/local/Library
git pull origin master

Trong trường hợp bạn có thay đổi trong thư mục (/ usr / local / Library), git pull sẽ đưa ra lỗi. Trong trường hợp đó, bạn sẽ phải tìm nạp nhánh chính và đặt nó thành cưỡng bức:

git fetch --all
git reset --hard origin/master

Điều này sẽ nâng cấp homebrew của bạn và bạn có thể sử dụng lại bia.

Nếu bạn cài đặt Homebrew như một người dùng không phải root, bạn sẽ cần phải cdđể /Users/yourusername/homebrew/Librarythay /usr/local/Library.


20
còn một lý do nữa khiến tôi thích có một trình quản lý gói được xây dựng trên git :)
spinlock

3
Chính xác. Phần mềm tình yêu chỉ đơn giản chạy từ nguồn và có thể nâng cấp thông qua git pull
Ranjith Ramachandra

7
Thật kỳ lạ, tôi đang nhận được cái chết
Gabriel R.

2
Tôi đang gặp lỗi này:error: cannot open .git/FETCH_HEAD: Permission denied
sixty4bit

6
Hãy thửsudo git pull origin master
Ranjith Ramachandra

48

Tôi tìm thấy giải pháp này :

Liên kết đó mô tả nó tốt, nhưng trong trường hợp liên kết bị hỏng, đây là điều bạn cần làm: Nhập các lệnh này vào Terminal của bạn:

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

2
Không giống như câu trả lời được chấp nhận, điều này thực sự có hiệu quả.
Paul

Đây là điều duy nhất làm việc cho tôi vào ngày 10.10.3
người dùng

Cũng hoạt động cho 10.10.4
Ralfonso

Lỗi hủy bỏ: Thất bại trong khi thực hiện: git pull -q origin refs /
Heads

Điều này hiệu quả với tôi, mặc dù cũng có một bước khác cần thực hiện: stackoverflow.com/questions/26501126/
mẹo

22

Phiên bản và vị trí của Ruby đã thay đổi với phiên bản Mac OS X mới.

Để sửa lỗi này theo cách chung chung, hãy chỉnh sửa /usr/local/Library/brew.rb.

Trên dòng đầu tiên, thay thế 1.8bằng Current, tức là từ:

#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0 

đến:

#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0

Điều này phá vỡ brew updatebởi vì bây giờ bạn có một sự thay đổi không cam kết.
pricj004

1
Tuy nhiên, để thực hiện, brew updatengười ta phải áp dụng bản sửa lỗi mà tôi đã đề xuất. Tôi chưa bao giờ sử dụng brew updatecho đến bây giờ, vì vậy tôi thậm chí không có repo khởi tạo. Tôi không thể nhớ tôi thậm chí đã cài đặt nó như thế nào.
Gabriel R.

3

Nếu bạn khắc phục sự cố ruby ​​và sau đó gặp sự cố khi bạn được thông báo rằng hệ thống cho rằng bạn đang chạy hổ hoặc bản phát hành cũ hơn, cách khắc phục cho vấn đề đó nằm ở đây


1

Lần đầu tiên tôi đã thử câu trả lời được đánh giá cao nhất và sau đó nhấn một vấn đề khác . Sau đó tôi đã từ bỏ việc sửa nó vì tôi chỉ cài đặt một vài gói. Có lẽ những người khác cũng ở trong chiếc thuyền này.

Mặc dù đây đều là những câu trả lời tuyệt vời, nhưng đối với tôi, việc cài đặt lại brew lại đơn giản hơn.

Đầu tiên, tôi chạy các hướng dẫn trên:

http://brew.sh/

hướng dẫn tôi gỡ cài đặt đầu tiên và in một dòng lệnh. Tôi đã chạy dòng lệnh đó để gỡ cài đặt, sau đó cài đặt lại và mọi thứ đều ổn.

Tôi không muốn in các lệnh cụ thể, vì chúng có xu hướng thay đổi một chút khi brew điều chỉnh cách mọi thứ được cài đặt.

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.