Upgrade minuman di El Capitan

38

Saya baru saja meningkatkan ke El Capitan, dan ketika saya mencoba memperbarui brewsaya mendapat kesalahan berikut:

$ 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

Sebelum saya melanjutkan dengan chownrekomendasi, mengingat El Capitan baru saja keluar, apakah itu cara yang tepat untuk melanjutkan ke sini? Mengapa langkah ini perlu, dan apa konsekuensi potensial yang tidak diinginkan dari menjalankan perintah ini?

Jika itu membantu, saya menemukan dua masalah tentang El Capitan di brew: 40837 dan 41665 tetapi solusi untuk masalah ini tidak segera jelas. Apa yang bisa saya lakukan untuk terus menggunakan brewdi El Capitan andal?

Amelio Vazquez-Reina
sumber
2
Nah apa yang Anda lakukan sesuai pesan yang disarankan, ubah kepemilikan /usr/local?
user3439894
Ini menimbulkan pertanyaan yang bagus untuk kasus beberapa pengguna (atau satu pengguna dengan beberapa akun yang memiliki profil berbeda) pada mesin yang sama.
Walt Stoneburner
4
Mengetik sudo chown -Rmemberi saya semangat. Tidak masalah apa parameter lainnya. Saya memiliki lebih dari Homebrew /usr/local, dan itu bukan perintah yang jelas aman. Saya mengonfirmasi melalui Time Machine yang menginstal El Capitan chown, secara eksklusif /usr/local, dan bukan subdirektori. Dengan demikian saya bisa lolos dengan melakukan pengembalian non-rekursif, yaitu sudo chown $(whoami):admin /usr/local. YMMV.
duozmo
@duozmo benar. The -Rdalam sudo chown -Rbenar-benar berat diserahkan. Itu sama dengan Brew yang mengklaim domain secara keseluruhan/usr/local
HairOfTheDog

Jawaban:

31

Maksud saya mereka memberi Anda solusi di sana. Saya memiliki masalah yang sama dan saya hanya berlari:

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

dan itu berhasil.

Nama tampilan
sumber
1
+1 Saya juga perlu mengatur ulang izin pengguna saya seperti yang dijelaskan. Tidak ada masalah lebih lanjut setelah perubahan kecil ini - homebrew dan paket saya sangat andal pada 10.11.
bmike
22
Ini tidak benar-benar menjawab pertanyaan: Orang mungkin berasumsi bahwa Apple terkunci / usr / lokal karena suatu alasan dan bahwa perbaikan ini TIDAK sesuai untuk El Capitan. Saya sekarang Google untuk melihat apakah Apple memberikan beberapa petunjuk. Pertanyaannya adalah "... mengingat El Capitan baru saja keluar, apakah itu cara yang tepat untuk melanjutkan ke sini?"
Michael Welch
1
@MichaelWelch Jawabannya diposting sebelum edit itu.
DisplayName
1
Maaf @ Displayplay Nama saya harus melihat cap waktu.
Michael Welch
2
Ini jawaban yang benar. Lihat github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/… - Saya berlari $ brew doctordan menemukan bahwa ada flacketergantungan yang hilang. Setelah $ brew install flacsaya dengan keras kepala harus berlari $ brew updatebeberapa kali lagi.
Ando
9

Kita tidak perlu lagi memusingkan hal ini. Saya mempertaruhkan saran dan melakukan perubahan izin yang disarankan. Kemudian, saat memperbarui ke homebrew terbaru saya mendapat pesan meyakinkan ini:

Homebrew tidak perlu lagi memiliki kepemilikan / usr / lokal. Jika mau, Anda dapat mengembalikan / usr / local ke kepemilikan default dengan: sudo chown root: wheel / usr / local

JannieT
sumber
Lalu bagaimana cara mengatasi masalah ini?
Rajesh Maurya
@RajeshMaurya menggunakan solusi oleh karolus
JannieT
8

Per beberapa pertanyaan keamanan di atas, dialog memang memberikan instruksi untuk mengatur ulang setelah pembaruan minuman yang berhasil. Setelah berlari

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

Lalu

brew update

Setelah pembaruan berhasil dijalankan, dialog akan menunjukkan melakukan hal ini:

sudo chown root:wheel /usr/local

Setelah itu dijalankan, itu harus meringankan masalah keamanan dengan MacOS 10.12

karolus
sumber
chown: / usr / local: Operasi tidak diizinkan
Rajesh Maurya
6

Solusi yang diberikan tidak bekerja untuk saya:

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

Variasi ini bekerja untuk saya:

sudo chown -R $USER /usr/local/

Brian Spiering
sumber
1
sudo chown -R $ USER / usr / local / bekerja untuk saya di macOS terbaru
Alex Trott
1
chown: / usr / local /: Operasi tidak diizinkan
Rajesh Maurya
tambahkan sudolalu ketikkan kata sandi tingkat root
Brian Spiering
1
Masih chown: / usr / local /: Operasi tidak diizinkan walaupun saya mengetikkan kata sandi root.
2myCharlie
0

Saya memperbaikinya dengan menggunakan perintah ini sudo chown -R admin /usr/local.

Lee Li
sumber
-1

silakan lihat SIP dengan:

csrutil status

perlindungan integritas sistem diperbaiki pada "aktifkan", dengan atribut Apple terakhir 'dibatasi ":

csrutil 
bigben
sumber
3
Bagaimana cara mengatasi masalah yang disebutkan dalam pertanyaan?
nohillside
-1

Itu berhasil untuk saya.

sudo chgrp -R admin /usr/local
sudo chmod -R g+w /usr/local
Mahfuz
sumber
1
Kedua solusi ini tidak berfungsi untuk saya. Itu masih menunjukkan: chown: / usr / local: Operasi tidak diizinkan
2myCharlie
-2

perlindungan integritas sistem perlu dinonaktifkan. Anda bisa melakukannya dengan ini.

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

Ini menonaktifkan sistem Perlindungan Integritas Sistem secara luas. Saya yakin Anda juga bisa melakukannya dari Mode Pemulihan. Anda masih harus mengetikkan kata sandi root saat melakukan sesuatu dengan sudo, tetapi Anda tidak dikunci oleh SIP. Anda juga tidak pergi membuka direktori secara tidak sengaja mencoba mengatur izin.

Harry McGovern
sumber
3
Tidak perlu menonaktifkan SIP untuk mengubah kepemilikan di bawah ini /usr/local.
nohillside