Zainstalowano, ale nie połączono

86

Uwaga: nie jestem dobry w używaniu powłoki.

Próbowałem zainstalować Valgrindużywając brewna Yosemite.

brew install --HEAD valgrind

Pod koniec wyskoczył mi błąd związany z linkowaniem, więc kiedy próbowałem przeinstalować, otrzymałem:

Ostrzeżenie: valgrind-HEAD jest już zainstalowany, po prostu nie jest połączony

Najwyraźniej już to zainstalowałem. Następnie w oparciu o inne pytania i odpowiedzi SO próbowałem:

brew link valgrind

Wydawało się, że rozwiązuje to problemy innych osób związane z łączeniem już zainstalowanego oprogramowania, ale spowodowało to błąd:

Linking /usr/local/Cellar/valgrind/HEAD... 
Error: Could not symlink lib/pkgconfig/valgrind.pc
/usr/local/lib/pkgconfig is not writable.

Próbowałem też zaktualizować, brewale to nie rozwiązało problemu. Jeśli nie ma możliwości zapisu, może sudodałby mi pozwolenie, ale nie chcę używać, sudonie wiedząc dokładnie, co robię.

Co się dzieje i jak to naprawić?

aanrv
źródło

Odpowiedzi:

103

Wygląda na problem z pozwoleniem. Spróbowałbym to zrobić

chmod 755 /usr/local/lib/pkgconfig

Powinno to udostępnić, a następnie spróbuj

brew link valgrind

Jeśli to nie zadziała, spróbuję to sprawdzić

brew doctor
Gann14
źródło
5
Używam brew doctori według instrukcji używam chowndwukrotnie, aby rozwiązać problem.
yanzi1225627
2
@ yanzi1225627 dlaczego dwa razy?
Greg Hilston
31

Pierwszy bieg

brew link <package>

Jeśli wyświetla błąd, spróbuj przeprowadzić automatyczną diagnostykę

brew doctor

brew doctor podaje listę problemów, które mogą prowadzić do błędów w procesie instalacji.

Aby rozwiązać problemy w przypadku konfliktów plików, uruchom program, aby uzyskać listę wszystkich działań, które zostaną wykonane przez nadpisanie, bez ich wykonywania.

Aby wyświetlić listę wszystkich plików, które zostaną usunięte:

  brew link --overwrite --dry-run <package>

a następnie to uruchomienie, które wykona nadpisanie, zakładając, że uważasz, że działania wykonane przez nadpisanie spowodują, że twój system będzie bardziej stabilny .

Aby wymusić łącze i nadpisać wszystkie pliki będące w konflikcie:

 brew link --overwrite <package>
Vinay Vemula
źródło
13

Jeśli żadne z powyższych rozwiązań nie działa, spróbuj tego.

sudo chown -R $USER:admin /usr/local
brew link <package-name>
Harshit
źródło
3

W moim przypadku lekarz warzelni dobrze to zrobił. W pewnym momencie / usr / local / lib / pkgconfig został ustawiony jako należący do roota, a nie do mojego konta. Przepisany środek zadziałał -

sudo chown -R $(whoami) /usr/local/lib/pkgconfig
Pedro Jiménez
źródło
2

Miałem ten sam problem i rozwiązałem go następnym rozwiązaniem: uruchom brew doctora z terminala, aby sprawdzić wszystkie swoje błędy

następnie uruchom następną komendę:

sudo chown -R $USER:admin /usr/local/bin /usr/local/etc /usr/local/sbin /usr/local/share

po biegu:

brew link <package_name>
B.Kleo
źródło
1

Rodzaj

link valgrind

Wyświetli błąd, że nie można go połączyć, ponieważ taki a taki katalog nie jest zapisywalny. Super, teraz umożliwiamy zapis. Rodzaj

sudo chmod a+w the/directory/shown/as/error

Jeśli katalog nie jest zapisywalny, nie będziesz mógł zmienić jego uprawnień ani uczynić go zapisywalnym. Sudo umożliwi tę operację. chmod zmieni tryb i umożliwi wszystkim (a) użytkownikom zapisywanie (w) tego.

Następnie zostaniesz poproszony o wpisanie hasła systemu. Następnie ponownie wpisz

link valgrind

i tym razem będzie działać.

mnich Sinha
źródło
1

Oto, co próbowałem i zadziałało:

$ brew link --overwrite sdl
Linking /usr/local/Cellar/sdl/1.2.15...
Error: Could not symlink lib/pkgconfig/sdl.pc
/usr/local/lib/pkgconfig is not writable.

Szukał pkgconfig: (po chmod 750)

drwxr-xr-x   4 root           wheel   136B Mar 30  2013 pkgconfig

Próbowałem chownjak poniżej:

$ sudo chown -R  avkashchauhan:admin /usr/local/lib/pkgconfig

powinien wyglądać jak poniżej:

drwxr-xr-x   4 avkashchauhan  admin   136B Mar 30  2013 pkgconfig

Po wypróbowaniu:

$ brew link sdl                                                                                                                                                                                                                    
Linking /usr/local/Cellar/sdl/1.2.15... 182 symlinks created
AvkashChauhan
źródło
0

Mam podobny problem,

$ brew install sqlite Aktualizacja Homebrew ... ==> Automatycznie zaktualizowany Homebrew! Zaktualizowano 1 dotknięcie (homebrew / core). Brak zmian w formułach.

Ostrzeżenie: sqlite-3.17.0 już zainstalowany, po prostu nie jest połączony.

Próbowałem to połączyć,

$ brew link sqlite Ostrzeżenie: sqlite jest tylko beczką i musi być połączone z --force Pamiętaj, że może to kolidować z oprogramowaniem do budowania.

Następnie zrób to siłą,

$ brew link --force sqlite Linking /usr/local/Cellar/sqlite/3.17.0 ... Utworzono 8 linków symbolicznych

X. L
źródło
0

Miałem ten sam problem z pozwoleniem, ale po wyrażeniu zgody nadal występuje błąd. I tutaj najpierw:

brew unlink valgrind

i wtedy,

brew link valgrind

Mam nadzieję, że to pomoże.

mbdrian
źródło
0
brew install cocoapods --build-from-source
brew link --overwrite cocoapods

Jedyne polecenia, które działały dla mnie po aktualizacji do MAC OS Mojave 10.14.6

Naishta
źródło