Nâng cấp nhà máy bia ở El Capitan


38

Tôi mới nâng cấp lên El Capitanvà khi tôi thử cập nhật brew Tôi đã nhận được lỗi sau:

$ brew update
Error: The /usr/local directory is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. Some versions of the
"InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local
back to your user account.
  sudo chown -R $(whoami):admin /usr/local

Trước khi tôi tiến hành chown khuyến nghị, cho rằng El Capitan vừa xuất hiện, đó có phải là cách đúng đắn để tiến hành ở đây? Tại sao bước này là cần thiết, và bất kỳ hậu quả không mong muốn tiềm năng là gì chạy lệnh này?

Trong trường hợp có ích, tôi đã tìm thấy hai vấn đề về El Capitan trong brew: 40837 41665 nhưng một giải pháp cho vấn đề này đã không rõ ràng ngay lập tức. Tôi có thể làm gì để tiếp tục sử dụng brew ở El Capitan đáng tin cậy?


2
Bạn đã làm như thông điệp đề xuất, thay đổi quyền sở hữu /usr/local?
user3439894

Điều này đặt ra một câu hỏi tuyệt vời cho trường hợp nhiều người dùng (hoặc một người dùng có nhiều tài khoản có cấu hình khác nhau) trên cùng một máy.
Walt Stoneburner

4
Đánh máy sudo chown -R cho tôi những ý chí. Nó không quan trọng những gì các tham số khác là. Tôi có nhiều hơn Homebrew trong /usr/localVà nó không phải là một lệnh an toàn rõ ràng. Tôi đã xác nhận qua Time Machine rằng cài đặt El Capitan chown ed, độc quyền, /usr/localvà không phải là thư mục con. Do đó, tôi đã có thể thoát khỏi việc thực hiện một sự đảo ngược không đệ quy, tức là sudo chown $(whoami):admin /usr/local. YMMV.
duozmo

@duozmo nói đúng. Các -R trong sudo chown -R thực sự rất nặng tay. Đó là tương đương với miền tuyên bố của Bia trên toàn bộ /usr/local
HairOfTheDog

Câu trả lời:


32

Tôi có nghĩa là họ cung cấp cho bạn giải pháp ngay tại đó. Tôi đã có cùng một vấn đề và tôi chỉ chạy:

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

va no đa hoạt động.


1
+1 Tôi cũng cần thiết lập lại quyền của người dùng như được mô tả. Không có vấn đề gì nữa sau chỉnh sửa nhỏ này - homebrew và các gói của tôi rất đáng tin cậy vào ngày 10.11.
bmike

22
Điều này không thực sự trả lời câu hỏi: Người ta có thể cho rằng Apple đã khóa / usr / local vì một lý do và cách khắc phục này KHÔNG phù hợp với El Capitan. Bây giờ tôi đang tìm hiểu xem Apple có cung cấp một số hướng dẫn hay không. Câu hỏi là "... cho rằng El Capitan vừa xuất hiện, đó có phải là cách đúng đắn để tiến hành ở đây?"
Michael Welch

1
@MichaelWelch Câu trả lời đã được đăng trước khi chỉnh sửa.
DisplayName

1
Xin lỗi @DisplayName Tôi nên xem dấu thời gian.
Michael Welch

2
Đây là câu trả lời chính xác. Xem github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/ - Tôi đã chạy $ brew doctor và phát hiện ra rằng flac sự phụ thuộc đã bị mất Sau $ brew install flac Tôi đã phải ngoan cố chạy $ brew update thêm một vài lần
Ando

9

Chúng tôi không còn cần phải phá vỡ đầu của chúng tôi về điều này. Tôi đã mạo hiểm lời khuyên và đã thay đổi sự cho phép. Sau đó, khi cập nhật lên homebrew mới nhất, tôi nhận được thông báo trấn an này:

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ể trả lại / usr / local cho quyền sở hữu mặc định của nó với:     sudo chown root: wheel / usr / local


Vậy làm thế nào để giải quyết vấn đề này?
Rajesh Maurya

@RajeshMaurya sử dụng giải pháp của karolus
JannieT

8

Theo một số câu hỏi bảo mật ở trên, hộp thoại sẽ đưa ra hướng dẫn để thiết lập lại sau khi cập nhật bia thành công. Sau khi chạy

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

Và sau đó

brew update

Sau khi cập nhật đã chạy thành công, hộp thoại sẽ cho biết thực hiện việc này:

sudo chown root:wheel /usr/local

Sau khi được chạy, điều đó sẽ làm giảm bớt mọi lo ngại về bảo mật với MacOS 10.12


chown: / usr / local: Không được phép thao tác
Rajesh Maurya

6

Các giải pháp đã cho không phải làm việc cho tôi:

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

Biến thể này làm việc cho tôi:

sudo chown -R $USER /usr/local/


1
sudo chown -R $ USER / usr / local / đã làm việc cho tôi trên macOS mới nhất
Alex Trott

chown: / usr / local /: Hoạt động không được phép
Rajesh Maurya

thêm vào sudo sau đó nhập mật khẩu cấp gốc
Brian Spiering

Vẫn chown: / usr / local /: Thao tác không được phép ngay cả khi tôi nhập mật khẩu gốc.
2myCharlie

0

Tôi sửa nó bằng cách sử dụng lệnh này sudo chown -R admin /usr/local.


-1

vui lòng xem SIP với:

csrutil status

bảo vệ tính toàn vẹn của hệ thống được cố định tại "enable", với thuộc tính 'bị hạn chế "cuối cùng của Apple:

csrutil 

3
Làm thế nào để giải quyết vấn đề nêu trong câu hỏi?
nohillside

-1

Nó làm việc cho tôi.

sudo chgrp -R admin /usr/local
sudo chmod -R g+w /usr/local

Cả hai giải pháp này đều không hiệu quả với tôi. Nó vẫn hiển thị: chown: / usr / local: Thao tác không được phép
2myCharlie

-2

bảo vệ toàn vẹn hệ thống cần phải được vô hiệu hóa. Bạn có thể làm điều đó với điều này.

sudo nvram boot-args="rootless=0";osascript -e 'tell app "loginwindow" to «event aevtrrst»’

Điều này vô hiệu hóa hệ thống Bảo vệ toàn vẹn hệ thống rộng. Tôi tin rằng bạn cũng có thể làm điều đó từ Chế độ khôi phục. Bạn vẫn phải nhập mật khẩu gốc khi thực hiện mọi thứ với sudo, nhưng bạn không bị khóa bởi SIP. Sau đó, bạn cũng không nên mở các thư mục vô tình cố gắng thiết lập quyền.


3
Không cần phải tắt SIP để thay đổi quyền sở hữu bên dưới /usr/local.
nohillside
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.