Rendi i file in `/ usr / local` scrivibili per l'homebrew


35

Ho cercato di far funzionare bene l'homebrew, ma sembra che tutto dentro /usr/localnon sia scrivibile e tutto cada.

Continua a ripetermi in modo ricorsivo chown /usr/local, e ci ho provato. Operazione negata, quindi l'ho fatto. Sembrava funzionare, ma con un silenzio inquietante che sento è considerato educato in Unix. Sfortunatamente, qualsiasi tentativo successivo di brew updateincontrare la stessa cacofonia di errori.

Eseguo nuovamente il comando -ve sembra che l'operazione non sia consentita per nulla all'interno.

Per quanto la risposta sia probabilmente "impara UNIX", sto solo cercando di soddisfare alcuni requisiti di lavoro qui per un tutorial su Ruby, quindi sono alcuni passaggi sopra dove sono attualmente.

brew doctor:

Warning: /usr/local/Frameworks isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/Frameworks
Warning: /usr/local/Cellar isn't writable.
You should `chown` /usr/local/Cellar
Warning: /usr/local/etc isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/etc
Warning: /usr/local/include isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/include
Warning: /usr/local/lib isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib
Warning: /usr/local/lib/pkgconfig isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/lib/pkgconfig
Warning: /usr/local/opt isn't writable.
You should `chown` /usr/local/opt
Warning: /usr/local/share isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/share
Warning: Some directories in /usr/local/share/man aren't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew. If a brew tries to add locale information to one of these
directories, then the install will fail during the link step.
You should probably `chown` them:

    /usr/local/share/man
    /usr/local/share/man/man1
    /usr/local/share/man/man3
    /usr/local/share/man/man5
    /usr/local/share/man/man7
    /usr/local/share/man/man8
Warning: /usr/local/var isn't writable.

This can happen if you "sudo make install" software that isn't managed by
by Homebrew. If a formula tries to write a file to this directory, the
install will fail during the link step.

You should probably `chown` /usr/local/var

Ti brew doctordice qualcosa di utile? Pubblica qui l'output.
Ian C.

@IanC. È un lungo elenco di tutto ciò che riguarda la birra non è scrivibile. Esiste un programma di utilità pastebin stackexchange? C'è moltissimo .
Tigt,

Bene, è strano. C'è molto meno adesso di quanto non fosse.
Tigt,

Cordiali saluti: Ho appena corso brew updatee ho scoperto che "Homebrew non ha più bisogno di avere la proprietà di / usr / local". Maggiori informazioni in questa domanda . Ovviamente per arrivare a quel punto dovresti comunque aggiornare temporaneamente le autorizzazioni su / usr / local :)
acobster

Risposte:


26

Questo dovrebbe essere risolto modificando i permessi su quella directory nel modo seguente:

$ cd /usr/local
$ sudo chown -R <your-username>:<your-group-name> *

Se non conosci il tuo gruppo, digita id -g.


La parte importante è quella -Rdi renderlo ricorsivo. E probabilmente devi fare l' chownuso sudo. Per il gruppo di utenti, di solito uso staffsu OS X.
nwinkler

Interessante. Perché l'utilizzo del gruppo è così diverso dal solo utente?
Tigt,

4
Perché è corretto che / usr / local sia di proprietà dell'utente? Penso che sia un rischio per la sicurezza, dato che ci sono molti altri programmi che usano / usr / local e potrebbero essere presi in silenzio. La birra ha davvero bisogno di qualcosa di così drastico?
Alfredo

1
Credo che sia pericoloso in quanto seleziona il gruppo "staff", il che significa che ogni utente sul sistema operativo può quindi modificare il contenuto di / usr /. Probabilmente dovresti passare a "admin".
Indolente il

1
@dfrankow sì, questo è un errore di homebrew. Non pensavano nemmeno cosa sarebbe successo se ci fossero due utenti sulla stessa macchina.
poige

22

Devi usare sudo per eseguire il comando con privilegi elevati, in questo modo:

sudo chown -R `whoami` /usr/local

L'ho fatto. "Operazione negata, quindi l'ho sudo."
Tigt,

1
Per gli utenti di conchiglie di pesce saràsudo chown -R (whoami) /usr/local
kibin il

10

Ieri stavo affrontando questo problema con macOS 10.13.4 e ho provato a sudo chgrp -R admin /usr/localo sudo chown -R <your-username>:<your-group-name> /usr/localche ottengono Operation not permittederrori anche se usandosudo

Quindi ho provato a solo chgrpper la Homebrewcartella correlata a admin(Il mio utente è nel admingruppo, dipende dall'utente che stai eseguendo, potresti essere costretto a passare a un altro gruppo) e concedere al admingruppo l'accesso in scrittura a quelle cartelle usando questi comandi

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

Dopo aver eseguito questi comandi, sono in grado di installare un nuovo pacchetto senza problemi. Se si verificano nuovamente problemi di autorizzazione, provare a eseguire i primi due comandi sostituendo il nome della cartella con quello in cui si sta riscontrando il problema con l'autorizzazione.

Spero che questo possa aiutare gli altri utenti con macOS 10.13.

Nota: anche se cambiare il proprietario /usr/localo cambiare il gruppo di /usr/locale concedere l'accesso al tuo gruppo potrebbe funzionare, non dovresti MAI farlo mentre stai modificando anche l'altra cartella non correlata. La modifica delle cartelle necessarie è molto più sicura.


questo va davvero bene per me! <3 grazie
DariusV

Questa dovrebbe essere votata come la risposta corretta! Grazie per l'aiuto!
Yini,

2

per risolvere i problemi di autorizzazione sulle directory possiamo eseguire il seguente comando:

brew prune

1

Ha funzionato per me.

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

0

La risposta di Reza a questa domanda ha funzionato per me:

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

Non puoi cambiare l'autorizzazione per / usr / local stesso, ma puoi cambiare l'autorizzazione giusta per le cartelle sottostanti

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.