Właśnie zaktualizowałem system Snow Leopard do Lion i próbuję zainstalować Homebrew. Jednak po instalacji uruchamiam się brew doctor
zgodnie z instrukcjami instalacji i widzę serię błędów wskazujących, że katalogów / usr / local nie można zapisać. Na przykład:
Error: /usr/local/share isn't writable.
This can happen if you "sudo make install" software that isn't managed
by Homebrew.
If a brew tries to write a file to this directory, the install will
fail during the link step.
You should probably `chown` /usr/local/share
Dostaję je za kilka katalogów:
You should probably `chown` /usr/local/include
You should probably `chown` /usr/local/share
You should probably `chown` /usr/local/share/man
Nie mogę zrozumieć, dlaczego pojawia się ten błąd, ponieważ wydaje się, że jestem częścią grupy Unix, która ma uprawnienia do zapisu w tych katalogach:
Mini:~ felciano$ ls -ld /usr/local/share
drwxrwxr-x 4 root admin 136 May 13 15:53 /usr/local/share
Mini:~ felciano$ whoami
felciano
Mini:~ felciano$ dscl . -read /Groups/admin GroupMembership
GroupMembership: root felciano
Mini:~ felciano$
czego mi brakuje?
/usr/local
powodu, dla którego powinienem należeć do mnie, gdy ten komputer ma wielu użytkowników administracyjnych. Ponadto, mogę pisać do lokalizacji, na którebrew doctor
narzeka. Jakieś inne pomysły?Odpowiedzi:
EDYCJA: Problem został już naprawiony w Homebrew:
Jeśli problem nadal występuje, zaktualizuj Homebrew w następujący sposób:
Jeśli chcesz wiedzieć, na czym polega problem, poniżej zamieściłem oryginalną odpowiedź.
Na razie zignoruj kwestię zezwolenia
Mam dokładnie ten sam problem i moim zdaniem problem jest
brew doctor
raczej związany z instalacją.Myślę, że powinieneś zignorować ten problem, a nie zmienić własność
/usr/local
. Alternatywnie możesz naprawić swój lokalnybrew doctor
skrypt, dopóki poprawka nie zostanie wydana. Patrz poniżej.Nie uważam za słuszne uczynienie
/usr/local
własnością określonego użytkownika. Mam więcej niż jednego użytkownika administratora na tym komputerze. Powinieneś pozostawić/usr/local
własnośćroot:admin
jako właściciel i grupa.Moje dochodzenie
Podobnie jak dla ciebie,
/usr/local
mój użytkownik, który jest również członkiemadmin
grupy, doskonale zapisuje dane :Sprawdźmy, czy katalog jest naprawdę zapisywalny:
Dalsze badanie
brew doctor
kodu doprowadziło mnie do wniosku, żePathname.writable?
przyczyną problemu jest użycie funkcji ruby . Rozważ tę interaktywną sesję Ruby:Funkcja
Pathname.writable?
mówi, że/usr/local
nie można zapisywać, chociaż wiemy, że jest.Użycie
Pathname.writable_real?
zamiast tego daje poprawny wynik - mówi, że katalog można zapisać:To powinno zostać naprawione w
/usr/local/Library/Homebrew/cmd/doctor.rb
. Możesz to naprawić we własnej instalacji, czekając na poprawkę.Różnica między tymi dwiema funkcjami jest (zgodnie z dokumentami Ruby tutaj i tutaj ):
writable? (nazwa_pliku) → true czy false: Zwraca true, jeśli nazwany plik jest zapisywalny przez efektywny identyfikator użytkownika tego procesu.
writable_real? (nazwa_pliku) → true lub false: Zwraca true, jeśli nazwany plik jest zapisywalny przez rzeczywisty identyfikator użytkownika tego procesu.
źródło
writable_real?
... może nadszedł czas na żądanie ściągnięcia?!? :-)Uważam, że potrzebujesz tego:
brew update
Następnie spróbuj
brew doctor
ponownie.Nadal mogą występować błędy dotyczące wszelkich zależności, których nie używasz (w moim przypadku Java), co jest w porządku. Jeśli masz zainstalowane narzędzia wiersza polecenia dla Xcode zamiast pełnej instalacji Xcode, otrzymasz również komunikat o błędzie informujący, że masz niepoprawną ścieżkę, ale bezpośrednio w komunikacie przeczytasz również, że nie ma prawidłowej ścieżki, jeśli jesteś po prostu używając narzędzi wiersza poleceń dla Xcode, więc to też jest w porządku.
Z korzyścią dla innych: pamiętaj, że aby to zadziałało, musisz zalogować się jako administrator.
źródło
Postępowałem zgodnie z sugestiami iolsmit i Phila M.: Zmieniłem te katalogi na moją nazwę użytkownika, a następnie uruchomiłem
brew update
ponownie, a następniebrew doctor
. Pozbyło się to wszystkich komunikatów o błędach i instalacje zaparzania wydają się teraz działać dobrze. Dziękuję wam obu!źródło
Kciuki za dochodzenie i wyjaśnienia @ mgd ... jest na miejscu!
Wygląda na to, że podobny problem został zgłoszony na github.com około rok temu, ale nigdy (właściwie?) Nie został rozwiązany, przynajmniej nie przy użyciu
writable_real?
... może nadszedł czas na żądanie ściągnięcia?!? :-)źródło