Aggiornamento birra in El Capitan


38

Ho appena eseguito l'aggiornamento a El Capitane quando ho provato ad aggiornare brewho ricevuto il seguente errore:

$ 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

Prima di procedere con la chownraccomandazione, dato che El Capitan è appena uscito, è questo il modo giusto di procedere qui? Perché è necessario questo passaggio e quali sono le eventuali conseguenze indesiderabili dell'esecuzione di questo comando?

Nel caso in cui aiuti, ho trovato due problemi su El Capitan in brew: 40837 e 41665 ma una soluzione a questo problema non è stata immediatamente chiara. Cosa posso fare per continuare a utilizzare brewin El Capitan in modo affidabile?


2
Bene, hai fatto come suggeriva il messaggio, cambiando la proprietà di /usr/local?
user3439894,

Ciò solleva un'ottima domanda per il caso di più utenti (o un utente con più account con profili diversi) sulla stessa macchina.
Walt Stoneburner,

4
Digitare sudo chown -Rmi dà i willies. Non importa quali siano gli altri parametri. Ho più di Homebrew in /usr/local, e non è un comando ovviamente sicuro. Ho confermato tramite Time Machine che l'installazione di El Capitan chowned, esclusivamente /usr/local, e non delle sottodirectory. Sono stato così in grado di cavarmela facendo un'inversione non ricorsiva, cioè sudo chown $(whoami):admin /usr/local. YMMV.
duozmo,

@duozmo ha ragione. L' -Ra sudo chown -Rè davvero pesante consegnato. Ciò equivale a Brew che rivendica il dominio sull'intero/usr/local
HairOfTheDog

Risposte:


31

Voglio dire, ti danno la soluzione proprio lì. Ho avuto lo stesso problema e ho appena corso:

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

e ha funzionato.


1
+1 Ho anche dovuto ripristinare le autorizzazioni del mio utente come descritto. Nessun ulteriore problema dopo questa piccola modifica: homebrew e i miei pacchetti sono stati molto affidabili il 10.11.
bmike

22
Questo non risponde davvero alla domanda: si potrebbe supporre che Apple abbia bloccato / usr / local per un motivo e che questa correzione NON sia appropriata per El Capitan. Sto googling ora per vedere se Apple fornisce alcune indicazioni. La domanda è "... dato che El Capitan è appena uscito, è questo il modo giusto di procedere qui?"
Michael Welch,

1
@MichaelWelch La risposta è stata pubblicata prima di quella modifica.
DisplayName

1
Scusa @DisplayName Avrei dovuto guardare i timestamp.
Michael Welch,

2
Questa è la risposta corretta Vedi github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/… - Sono corso $ brew doctore ho scoperto che flacmancava una dipendenza. Dopo $ brew install flacho dovuto correre testardamente $ brew updateun altro paio di volte.
Ando,

9

Non abbiamo più bisogno di spaccarci la testa per questo. Ho rischiato il consiglio e ho fatto cambiare l'autorizzazione suggerita. Quindi, aggiornando l'ultimo homebrew ho ricevuto questo messaggio rassicurante:

L'homebrew non deve più avere la proprietà di / usr / local. Se lo desideri, puoi riportare / usr / local alla proprietà predefinita con: sudo chown root: wheel / usr / local


Quindi, come risolvere questo problema?
Rajesh Maurya,

@RajeshMaurya usa la soluzione di karolus
JannieT,

8

Per alcune delle domande di sicurezza sopra, la finestra di dialogo fornisce le istruzioni per reimpostare dopo un aggiornamento della birra riuscito. Dopo aver corso

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

E poi

brew update

Dopo che l'aggiornamento è stato eseguito correttamente, la finestra di dialogo dovrebbe indicare:

sudo chown root:wheel /usr/local

Dopo che è stato eseguito, ciò dovrebbe alleviare eventuali problemi di sicurezza con MacOS 10.12


chown: / usr / local: operazione non consentita
Rajesh Maurya,

6

La soluzione fornita non ha funzionato per me:

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

Questa variazione ha funzionato per me:

sudo chown -R $USER /usr/local/


1
sudo chown -R $ USER / usr / local / ha lavorato per me sull'ultimo macOS
Alex Trott

1
chown: / usr / local /: operazione non consentita
Rajesh Maurya

aggiungi sudoquindi digita la password di livello principale
Brian Spiering,

1
Chown ancora: / usr / local /: operazione non consentita anche se si digita la password di root.
2myCharlie,

0

Lo aggiusto usando questo comando sudo chown -R admin /usr/local.


-1

guarda il SIP con:

csrutil status

la protezione dell'integrità del sistema è fissata su "abilita", con l'ultimo attributo Apple "limitato":

csrutil 

3
In che modo questo risolve il problema indicato nella domanda?
Nohillside

-1

Ha funzionato per me.

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

1
Entrambe queste soluzioni non funzionano per me. Mostra ancora: chown: / usr / local: operazione non consentita
2myCharlie

-2

la protezione dell'integrità del sistema deve essere disabilitata. Puoi farlo con questo.

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

Questo disabilita il sistema Integrity Protection per tutto il sistema. Credo che tu possa farlo anche dalla modalità di recupero. Devi ancora digitare la password di root quando fai cose con sudo, ma non sei bloccato da SIP. Inoltre, non aprirai inavvertitamente directory che provano a impostare le autorizzazioni.


3
Non è necessario disabilitare SIP per modificare la proprietà di seguito /usr/local.
Nohillside
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.