nie można chown / usr / local dla homebrew w systemie Mac OS X 10.13 High Sierra

118

Homebrew potrzebuje uprawnień w / usr / local, a ponieważ nikt inny nie używa mojego laptopa, zawsze to robiłem

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

ale w High Sierra to daje

chown: /usr/local: Operation not permitted

Jaka jest poprawka?

Dan
źródło
Rozwiązane za pomocą: sudo chown -R "$ USER": admin / usr / local / *
Marcelo Campusano

Odpowiedzi:

218

Problem nadal występował ... po głębszym kopaniu stwierdziłem, że tylko odinstalowanie Homebrew i ponowne zainstalowanie go rozwiązało problem.

Odinstaluj Homebrew:

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

Następnie zainstaluj go ponownie:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Uri Meirav
źródło
4
był to jedyny sposób na naprawienie mojego homebrew po aktualizacji "High" Sierra. mój błąd brzmiał: gh4x-mbpr:~ gh4x$ brew link git Linking /usr/local/Cellar/git/2.15.0... Error: Permission denied @ dir_s_mkdir - /usr/local/lib i sudo chown -R $(whoami) $(brew --prefix)/* nie pomogło ...
gh4x
Nie do wiary. Niepowodzenie za pierwszym razem, odinstalowanie skryptu nie powiodło się, druga instalacja zadziałała.
GreenAsJade
Możesz brew listnajpierw zapisać wynik programu w pliku, aby mieć zapis, jakie pakiety zostały zainstalowane.
Giles Gardam
1
Żadna z innych poprawek homebrew Mojave nie działałaby w moim systemie. Odinstaluj / Ponowna instalacja działała idealnie.
pkamb
2
Działa również z Cataliną
Gefilte Fish.
52

Niestety nie możesz już chownować /usr/localw High Sierra. Rozwiązaniem jest, sudo mkdir /usr/local/includea /usr/local/Frameworksjeśli nie istnieją, i

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

Dzięki ilovezfs za to proste obejście i za niesamowity homebrew!

Dan
źródło
9
Wciąż nie działa. Błąd aktualizacji $ brew: w katalogu / usr / local nie można zapisywać.
Laurence Cope
Spróbuj odinstalować i ponownie zainstalować Homebrew: stackoverflow.com/questions/46459152/ ...
ruggershawn
jak skomentowałem w innym miejscu, odinstalowanie usuwa WSZYSTKIE twoje pakiety brew.
jaydel
$(brew --prefix)powinien ocenić /usr/local/, jak sądzę.
Jordan Stewart
33

Nie możesz zmienić uprawnień dla /usr/localsiebie, ale możesz zmienić odpowiednie uprawnienia dla folderów pod spodem, więc naprawiło to
sudo chown -R $(whoami) /usr/local/*

Reza Farshi
źródło
1
Wciąż ten sam problem
Laurence Cope
2
Działa na MacOS High Sierra. Pracował. Dzięki.
Prince Odame
2
Pracował dla mnie na: macOS High Sierra 10.13.6
Gail Parsloe
8

Postępowałem zgodnie z tym, ale problem nadal występuje.
Więc przeinstalowałem homebrew bez odinstalowywania poprzedniego. Już działa!
(Nie wiem jak)

Aayush Gautam
źródło
3
Polecam całkowicie odinstalować Homebrew, a następnie zainstalować go ponownie.
k1r8r0wn
Wiele zainstalowanych działało, nie mogłem tego naprawić, dopóki nie odinstalowałem.
cbowns
odinstalowanie wszystkiego schrzani. Mam mnóstwo zainstalowanych pakietów i będę musiał przejść przez nie i zainstalować je od nowa. Niestety to wszystko działało wcześniej, ponieważ MAM te pakiety.
jaydel
3

Spróbuj wyłączyć Ochronę integralności systemu . Z dokumentacji:

Ochronę integralności systemu można skonfigurować za pomocą polecenia csrutil (1).

Możesz sprawdzić, czy ochrona integralności systemu jest obecnie włączona w systemie, uruchamiając następujące polecenie w terminalu:

$ csrutil status
System Integrity Protection status: enabled.

Aby włączyć lub wyłączyć ochronę integralności systemu, należy uruchomić system operacyjny Recovery i uruchomić polecenie csrutil (1) z terminala.

Uruchom system operacyjny Recovery, uruchamiając ponownie komputer i przytrzymując klawisze Command i R podczas uruchamiania. Uruchom Terminal z menu Narzędzia. Wpisz następujące polecenie: $ csrutil enable

Po włączeniu lub wyłączeniu Ochrony integralności systemu na komputerze wymagane jest ponowne uruchomienie.

Elle Mundy
źródło
Chociaż może to teoretycznie odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj zasadnicze części odpowiedzi i podać link do odniesienia.
Jake Symons
3
To trochę jak zdejmowanie osłony z piły stołowej. Działa i czasami może być konieczne, ale jest bezpieczniejsze, jeśli nie musisz tego robić. Ustawienie siebie jako właściciela / usr / local, aby homebrew działało, i tak zawsze wydawało się hackem.
Caleb
3
Jest to wysoce odradzane! Jest to niezwykle niebezpieczne, chyba że użytkownik nie robi tego, co robi.
Abu Shumon
@oligofren: D: D: D daj spokój stary. Spokojnie, to nie jest angielski word in contextkonkurs. : D: D Flaga ostrzegająca użytkownika. Ale w porządku, więc podchwycisz dla mnie sformułowania: p: p
Abu Shumon
1

jeśli używasz zsh, ponieważ pochodzisz z bash, być może będziesz musiał zmienić $ PATH. powinieneś dodać export PATH=$HOME/bin:/usr/local/bin:$PATH w .zshrc

to powinno działać, ten problem został rozwiązany w moim Macu w ten sposób.

zyqbit
źródło
1

Jestem też na 10.13 High Sierra. Wypróbowałem poprzednie sugestie; nic nie działało. Ostatecznie najpierw spróbowałem zainstalować narzędzia wiersza poleceń :

xcode-select --install

a następnie (ponownie) uruchom polecenie brew install:

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

i wreszcie zadziałało.

Ed Mechem
źródło
0

Upewnij się, że nie masz ustawionej blokady w folderze domowym ani żadnym folderze, do którego instalacja wymaga dostępu.

Nawet jeśli uprawnienia i własność są ustawione poprawnie i jesteś aktualnie zalogowany z poprawnym użytkownikiem / lub użytkownikiem głównym, nie pozwoli ci to na tworzenie nowych folderów lub katalogów.

Daniel
źródło
0

Nie miałem folderu / user / local / Frameworks, więc to naprawiło to za mnie

sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/Frameworks

Mam OSX High Sierra

ap00724
źródło
0

to jest Kaushik. Używam MacBooka Pro macOS Catalina 10.15.4. Utworzyłem nowe konto administratora, ale brew wyrzucał błąd. Dlatego podążyłem za krokiem od tego postu. co zadziałało to:

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

koushik v
źródło