Il medico della birra dice: "Attenzione: / usr / local / include non è scrivibile."


352

Il dottore della birra dice:

Avvertenza: / usr / local / include non è scrivibile. Questo può accadere se si "sudo make install" software non gestito da Homebrew.

Se una birra tenta di scrivere un file di intestazione in questa directory, l'installazione non riuscirà durante il passaggio del collegamento.

Probabilmente dovresti chown/ usr / local / include

Ho provato diversi comandi per risolvere questo problema, ma sono ancora bloccato qui.

Sto eseguendo homebrew il 10.8.2


1
Ho riscontrato un errore simile per "/ usr / local / lib" in Homebrew 0.9.4 che è stato risolto anche con la soluzione seguente.
JeremiahLee,

Risposte:


680

Assumiti la proprietà e tutto ciò che contiene.

Mac OS High Sierra o più recente: (collega a Kirk nei commenti qui sotto)

$ sudo chown -R $(whoami) $(brew --prefix)/*

Versioni precedenti di macos:

$ sudo chown -R $USER:admin /usr/local/include

Quindi fai un altro

$ brew doctor

13
operazione non permessa?
topwik

68
Qualche vantaggio invece di $ sudo chown -R `whoami` /usr/local/?
Labu

2
@WillemLabu un fork di processo in meno? whoami è un id utente efficace e come dice la pagina man è obsoleto :) bash è la shell predefinita su OSX e da qualche parte viene impostato USER.
jrwren,

7
Mi chiedo se cambiare la proprietà di / usr / local in un utente sia una soluzione pulita. Non sarebbe meglio aggiungere $ USER al gruppo "ruota"? O cambiare il gruppo di / usr / local nel gruppo admin?
Michael Lehn,

13
Secondo Homebrew in Mac OS, l'alta Sierra /usr/localnon funziona più. Invece usasudo chown -R $(whoami) $(brew --prefix)/*
Kirk Hammett il

115

Ciò che ha funzionato anche per me lo è stato

sudo chmod g+w /usr/local
sudo chgrp staff /usr/local

20
Questa è l'unica soluzione sana, non proprio sana di prendere la proprietà di / usr / local in un sistema
operativo

3
Ho bisogno di ottenere qualche voto per questo ragazzo! ;) Questo ha funzionato alla grande.
jrista,

1
Questa è la soluzione migliore IMHO
jacurtis,

5
Bene, non in High Sierra. "Impossibile modificare la modalità file su / usr / local: operazione non consentita"
user980018

1
@ user980018 Mi sono appena imbattuto nella stessa cosa - ecco la soluzione alternativa che ho usato
Casey Davidson,

38

Ciò che ha funzionato per me è stato

$ sudo chown -R yourname:admin /usr/local/bin

37

L'unico che ha funzionato per me su El Capitan è stato:

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

5
chown: / usr / local: operazione non consentita
AlxVallejo

1
@AlxVallejo facendolo su / usr / local / bin ha funzionato per me
marcotama,

23

Se sei su High Sierra e stai riscontrando questo problema, segui i passaggi seguenti ( Nota: / usr / local non può essere chown in High Sierra ):

sudo mkdir /usr/local/include
sudo chown -R $(whoami) $(brew --prefix)/*

Quindi prova a collegarti con brew link. Stavo riscontrando problemi simili e nessuna delle soluzioni di cui sopra ha funzionato per High Sierra. Spero che questo aiuti qualcuno.


21

Per High Sierra:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Quindi, prova i tuoi comandi brew.

Numero 3285


2
Non sono sicuro del motivo per cui questo è stato sottoposto a downgrade, se in precedenza era stato installato e aggiornato a High Sierra, la reinstallazione di Homebrew risolve il problema. Questo è l'approccio più semplice
sam9046

Ironia della sorte è perché la sceneggiatura fa esattamente ciò che le altre risposte suggeriscono.
Razze di leggerezza in orbita

Questo ha funzionato per me, ma prima ho disinstallato il precedente usando: ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )"
abbas

12

Puoi alias il comando per risolvere questo problema nel tuo .bash_profileed eseguirlo ogni volta che lo incontri:

Alla fine del file ~/.bash_profile, aggiungi:

alias fix_brew='sudo chown -R $USER /usr/local/'

E ora all'interno del tuo terminale puoi eseguire:

$ fix_brew

12

Questo ha funzionato per me su macOS 10.12

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

Ho avuto il problema con l'aggiornamento dell'homebrew con il seguente errore:

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

8

Per alcuni sarà:

sudo chown -R JonJames:admin /usr/local/lib

dove "lib" è usato al contrario di "bin" o "include" o "quant'altro"

L' avvertimento Homebrew "dovrebbe" spiegare cosa non è scrivibile nello specifico e quindi fornirti una sintassi del comando per follow, tuttavia dovrai usare ":" al contrario di ciò che cita l'Avvertimento che in realtà non è la sintassi corretta ??


La sintassi nell'Avvertimento è un po 'confusa, credo, ho mandato un'email al principale collaboratore di Homebrew per chiedere se avrebbero cambiato qualcosa al riguardo, in attesa di risposta, forse la verbosità dell'Avvertimento cambierà nei futuri aggiornamenti della birra ..
Jonathan James,

Grazie! Questo ha funzionato dopo una buona dose di ricerche in giro.
thisupup


5

Stesso errore su MacOS 10.13

/usr/local/includee /usr/local/ /usr/libnon sono stati creati. Ho creato manualmente e brew linkfinalmente lavorato.


3

Devi creare / usr / local / include e / usr / local / lib se non esistono:

$ sudo mkdir -p /usr/local/include
$ sudo chown -R $USER:admin /usr/local/include

3

Cosa ha funzionato per me, pur avendo più di 1 utente sul mio computer.

Utilizzando il terminale:

  • In esecuzione brew doctor
    • Vedere più /usr/local/...errori non è scrivibile
  • Disabilitazione della protezione dell'integrità del sistema per Mac: https://apple.stackexchange.com/a/208481/55628
  • Esegui quanto segue
  • sudo chown -R $(whoami) /usr/local/*
  • brew doctor && brew upgrade && brew doctor

Esecuzione di Macbook Pro OSX High Sierra (versione 10.13.3.)

MODIFICA 1:

Cordiali saluti - Si prega di notare che ciò causa un problema con l'esecuzione di MySQL sul MAC.

Per poter avviare il mio server locale, ho dovuto eseguire:

sudo chown -R mysql:mysql /usr/local/mysql/data

Dopo aver eseguito questo è possibile avviare il server MySQL locale.


1
Eccellente! Grazie!
shmuli,

3
sudo mkdir -p /usr/local/include /usr/local/lib /usr/local/sbin

sudo chown -R $(whoami) /usr/local/include /usr/local/lib /usr/local/sbin

Questo creerà tutte le directory richieste e gli darà la proprietà corretta.

Dopo aver eseguito questi comandi, verificare con: brew doctor

Questo funziona per Mojave.


2

È necessario ottenere il controllo dell'intero /usr/localper fare ciò che è necessario fare un chownsotto ricorsivo/usr/local

sudo chown -R YOUR_USERNAME:admin /usr/local/


2

Voglio solo fare eco al modesto commento di sam9046 come una soluzione alternativa e potenzialmente molto più semplice che ha funzionato nel mio caso: disinstallare e installare di nuovo homebrew da zero. Nessun comando sudo richiesto.

È anche possibile sfogliare / modificare lo script di disinstallazione da quel link sopra se è necessario assicurarsi che non influisca sui pacchetti precedentemente installati. Nel mio caso questa era solo la mia macchina di casa, quindi ho appena ricominciato.



2

Per prima cosa devi creare la directory:

sudo mkdir /usr/local/include

Secondo:

sudo chown -R $(whoami) $(brew --prefix)/*

1

Ho avuto questo accadere nella mia organizzazione dopo che tutti i nostri utenti erano associati a active directory (cambiando effettivamente l'UID da 50x a ######).

Ora si tratta semplicemente di cambiare la proprietà di tutti i file di proprietà di xy.

Dove 501 è il mio vecchio ID utente numerico che è ancora associato a tutti i file homebrew.

Il vecchio ID utente può essere trovato utilizzando ll /usr/local/Cellar

Ora aggiorna la proprietà sudo find /usr/local -user 501 -exec chown -h $USER {} \;

In questo modo evitiamo di modificare la proprietà dei file che non sono controllati da homebrew o appartengono ad altri utenti del sistema.


1

Vai nella directory / bin e digita:

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

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.