Làm thế nào để Homebrew không còn cần quyền sở hữu / usr / local?


27

Hôm nay tôi chạy brew update và sau khi di chuyển kho lưu trữ, nó báo cáo rằng nó không còn cần quyền sở hữu /usr/local:

$ brew update
Updated Homebrew from 5371359 to 13f08a2.
...
==> Migrating HOMEBREW_REPOSITORY (please wait)...
==> Migrated HOMEBREW_REPOSITORY to /usr/local/Homebrew!
Homebrew no longer needs to have ownership of /usr/local. If you wish you can
return /usr/local to its default ownership with:
  sudo chown root:wheel /usr/local

Sự thay đổi này có vẻ hơi mơ hồ. Làm thế nào để brew thực hiện hành vi mới này, dường như bỏ qua kiểm soát an ninh?


Những gì kiểm soát an ninh là nó bỏ qua? Các /usr/local không được bao gồm trong SIP. Xem Giới thiệu về Bảo vệ toàn vẹn hệ thống trên máy Mac của bạn trong "Đường dẫn và ứng dụng mà ứng dụng và trình cài đặt của bên thứ ba có thể viết để bao gồm:" /usr/local đã được liệt kê.
user3439894

3
Điều đó nói rằng, không phải là người dùng Homebrew, vì tôi biên dịch trực tiếp từ mã nguồn các tiện ích tôi muốn không bao gồm n OS X, dù sao tôi cũng cho rằng Homebrew đã được viết lại khi cần / cần thiết để hoạt động bình thường như các ứng dụng khác đã làm trong quá khứ. IMO Homebrew nên được viết từ lúc khởi hành để không phải chiếm quyền sở hữu gốc để bắt đầu!
user3439894

Ý tôi là, nếu /usr/local và con của nó được sở hữu bởi root:admin hoặc là root:wheel và không thể ghi nhóm, sau đó tôi không có quyền truy cập để ghi vào các thư mục đó (và cũng không phải là homebrew), nhưng nếu đó là trường hợp, Homebrew có thể quản lý cài đặt và xóa ứng dụng khỏi các vị trí đó như thế nào?
Jason R. Coombs

3
Tôi chỉ nhận thấy rằng tin nhắn chỉ tham khảo /usr/local và không phải là những người phụ thuộc của nó. Và nhìn vào những gì một cài đặt homebrew hoàn toàn mới làm, nó đặt tất cả các thư mục con được sở hữu bởi $ USER và nhóm có thể ghi.
Jason R. Coombs

Câu trả lời:


19

Theo kịch bản ruby ​​này: cập nhật-báo cáo.rb , họ vừa chuyển công cụ sang / usr / local / Homebrew, vẫn thuộc sở hữu của bạn.


2
Không / usr / local cần phải được ghi bởi $ USER để tạo / usr / local / Homebrew diễn ra? Còn các thư mục khác, như / usr / local / Cellar hoặc / usr / local / opt thì sao? Không homebrew vẫn cần truy cập (không phải sudo) để ghi vào các thư mục đó? Làm thế nào nó có thể làm điều đó nếu các thư mục được sở hữu bởi root và không thể ghi nhóm?
Jason R. Coombs

1
Trong lần cài đặt đầu tiên, họ vẫn sử dụng sudo để tạo kho lưu trữ homebrew, xem cài đặt, dựng lên . Kịch bản trong câu trả lời của tôi để cập nhật, tại thời điểm đó bạn vẫn sở hữu / usr / local mà bạn đã chọn trong phiên bản cũ.
albb

5

Bây giờ chúng tôi tạo tất cả các thư mục gốc của /usr/local rằng bạn cần và kiểm tra quyền sở hữu đối với họ thay vì yêu cầu nó /usr/local chinh no.

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.