Podczas instalacji tig
, HomeBrew
wyświetla następujące problemy podczas instalacji zależność:
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/a2x
/usr/local/bin is not writable.
You can try again using:
brew link asciidoc
Odpowiedzi:
Po odpowiedzi Alexa mogłem rozwiązać ten problem; wydaje się, że jest to problem niezwiązany z instalowanymi pakietami, ale dotyczy uprawnień
homebrew
folderów.W przypadku niektórych pakietów może być konieczne wykonanie tej czynności
/usr/local/share
lub/usr/local/opt
:źródło
sudo chown -R
whoami nie:admin /usr/local/bin
byłoby równoznaczne z poleceniem w odpowiedzi, bez konieczności zastąpieniayourusename
rzeczywistą nazwą użytkownika?usr/local/opt
rekursywnie. Po tym zadziałało./usr/local/bin
(i znajomych) wydają się przywracane dodrwxr-xr-x+
iroot wheel
każdego dnia. Muszę ponownie konfigurować perms za każdym razem, gdy chcębrew install
. Zakładam, że system operacyjny resetuje perms, aby mnie chronić? Jak mogę to zatrzymać? (Próbowałem,chflags uchg …
ale to uniemożliwia instalację naparu).Zamiast uruchamiać jakieś konkretne polecenie, zaleciłbym uruchomienie
brew doctor
i poważne potraktowanie wszystkich ostrzeżeń. Mogą występować inne problemy, w które utkniesz, a które mogą nie zostać uwzględnione w tym pytaniu.Ponadto, gdy napar jest aktualizowany z czasem, niektóre polecenia mogą, ale nie muszą, pozostać ważne.
brew doctor
zapewni jednak bieżące rozwiązywanie problemów.źródło
brew doctor
nie rozwiąże problemu, powie ci tylko o tym, a kiedy skorzystasz z porady lekarza, brew mówi, że nie może tego zrobić. To nie jest rozwiązaniePozostałe odpowiedzi są poprawne, o ile się posuwają, ale nie odpowiadają, dlaczego ten problem może wystąpić i jak rozwiązać ten pierwotny problem.
Przyczyna
Istnieją dwie możliwe przyczyny tego problemu:
brew doctor
sugerowana przyczyna , jeśli ją uruchomisz.Rozwiązanie
Multiuser Homebrew
Jeśli masz wiele kont użytkowników i chcesz, aby więcej niż jedno z nich mogło korzystać z naparu, musisz wykonać kilka kroków, w przeciwnym razie będziesz musiał stale zmieniać własność struktury plików Homebrew przy każdej zmianie użytkownika, i to nie jest świetny pomysł.
Szczegółowe instrukcje można znaleźć w Internecie , ale szybka odpowiedź jest następująca:
Utwórz grupę o nazwie napar:
sudo chgrp -R brew /usr/local
sudo chmod -R g+w /usr/local
sudo chgrp -R brew /Library/Caches/Homebrew
sudo chmod -R g+w /Library/Caches/Homebrew
Homebrew dla jednego użytkownika
Jeśli nie próbujesz używać więcej niż jednego użytkownika z Homebrew, to rozwiązanie dostarczone przez inne odpowiedzi, oparte na sugestiach
brew doctor
jest prawdopodobnie wystarczające:sudo chown -R $(whoami) /usr/local
sudo chown -R $(whoami) /Library/Caches/Homebrew
Weryfikacja
Po wykonaniu tych kroków
brew doctor
powinien zgłosić sukces każdego użytkownika w grupie zaparzania , zakładając, że wylogowałeś się i wróciłeś, aby zastosować nowe członkostwo w grupie (jeśli wybrałeś trasę dla wielu użytkowników). Jeśli właśnie poprawiłeś coś dla homebrew dla jednego użytkownika, wylogowanie i ponowne zalogowanie nie powinno być konieczne, ponieważ żadne członkostwo w grupie się nie zmieniło.źródło
/usr/local/bin
zapis grupowy, szczególnie. w środowisku wielu użytkowników. Czy to naprawdę „oficjalny” sposób parzenia?Dla tych, którzy szukają,
/usr/local/sbin
nie można zapisać błędu:AKTUALIZACJA: Może to być
/usr/local/someOtherFolderName
np/usr/local/include
. Musisz tylko utworzyć ten folder za pomocą:sudo mkdir someOtherFolderName
Najpierw utwórz
sbin
folder, pamiętaj, że wymaga tosudo
uprawnieńcd /usr/local
sudo mkdir sbin
sudo chown -R $(whoami) $(brew --prefix)/*
brew link yourPackageName
źródło
PATH=$PATH:/usr/local/sbin
Dla mojej konkretnej konfiguracji znalazłem następujące polecenia
A potem pokazało mi to, gdzie były moje błędy, a potem to nieco inne polecenie od powyższego komentarza.
źródło
brew doctor
brew doctor
jest dobry.Znalazłem ten sam problem, który możemy rozwiązać w trzech krokach:
Krok 1
Krok 2
Krok 3
Jeśli nadal masz problem z łączeniem, powiedzmy
mysql
, po prostu napiszTo zadziała.
źródło
Dla osób napotykających ten problem (przyznanych 4 lata po opublikowaniu tego postu) podczas korzystania z systemu Mac OS High Sierra - kroki opisane tutaj rozwiązały dla mnie problem. Zasadniczo opisuje tylko odinstalowywanie i ponowne instalowanie naparu.
https://medium.com/@mrkdsgn/brew-error-on-macos-high-sierra-check-you-have-permission-to-write-to-usr-local-e8bd1c6a22d4
Po wykonaniu tych kroków
brew link
działało jak urok!źródło
Dla mnie rozwiązaniem było uruchomienie
brew update
.ZRÓB TO PIERWSZE.
To może być normalna praktyka dla osób zaznajomionych z homebrew, ale nie jestem jedną z tych osób.
Edycja: Odkryłem, że muszę zaktualizować, uruchamiając
brew doctor
zgodnie z sugestią @ kinnth na to samo pytanie.Ogólny proces rozwiązywania problemów może wyglądać następująco: 1. uruchom
brew update
2. jeśli to nie pomoże uruchomićbrew doctor
i postępuj zgodnie z jego instrukcjami 3. jeśli to nie pomoże sprawdzić przepełnienia stosuźródło
Podczas robienia węzła link brew Dodatkowo dostałem również następujące problemy:
Błąd: Nie można zapisać dowiązania symbolicznego / node / usr / local / include.
Łączenie /usr/local/Cellar/node/9.3.0 ... Błąd: Odmowa dostępu @ dir_s_mkdir - / usr / local / lib
Aby rozwiązać powyższe, po prostu przejdź do / usr / local / i sprawdź dostępność folderów „include” i „lib”, jeśli te foldery nie są dostępne, po prostu utwórz je ręcznie.
I bieg piwny zainstalować węzeł ponownie
źródło
Wynika to z faktu, że bieżący użytkownik nie może pisać w tej ścieżce. Tak więc, aby zmienić uprawnienia do odczytu / zapisu, możesz użyć 1. terminalu lub 2. Graficznego okna „Uzyskaj informacje”.
1. Korzystanie z terminala
Google, jak korzystać z poleceń chmod / chown (zmień tryb / zmień właściciela) z terminala
2. Korzystanie z graficznego „Uzyskaj informacje”
Możesz kliknąć prawym przyciskiem myszy folder / plik, którego uprawnienia chcesz zmienić, a następnie otworzyć Pobierz informacje, który pokaże Ci okno jak poniżej, u dołu którego możesz łatwo zmienić uprawnienia r / w:
Pamiętaj, aby, jeśli to możliwe, zmienić zezwolenie z powrotem na „tylko do odczytu” po pracy tymczasowej
źródło
Znalazłem następujące istotne dla użytkowników Sophos Anti-Virus:
https://stackoverflow.com/a/32981184
https://community.sophos.com/products/free-antivirus-tools-for-desktops/f/17/t/10029
Krótko mówiąc, Sophos zmienia uprawnienia niektórych katalogów / usr / local. Sophos załatał to, a poprawka jest dołączona do wersji 9.4.1.
źródło
Mój problem był
chown
nie pomogło, ale zastosowałem się dobrew doctor
porad i to ostrzeżenie pomogło mi:W końcu
brew prune
wszystko działało dobrze!źródło
Dla tych, którzy nie są zaznajomieni:
źródło
Jeśli przejdziesz do folderu w wyszukiwarce, kliknij prawym przyciskiem myszy i wybierz „Uzyskaj informacje”, możesz przejść do sekcji „Udostępnianie i uprawnienia” dla folderu i zezwolić na „Odczytywanie i zapisywanie” dla „wszystkich”
To właśnie robię, aby łącza symboliczne przechodziły z tym błędem. Również brew wydaje się resetować uprawnienia do folderu, tak jakbyś niczego nie zmienił
źródło
Jeśli masz już katalog
/usr/local
instalowanego pakietu, możesz spróbować usunąć ten katalog.W moim przypadku wcześniej zainstalowałem pakiet, który próbowałem zainstalować bez użycia naparu, a następnie go odinstalowałem.
/usr/local/<my_package>/
Pozostał katalog z poprzedniej instalacji. Usunąłem ten folder (sudo rm -rf /usr/local/<my_package>/
), a następnie krok łącza parzenia powiódł się.źródło