Installiert, nur nicht verknüpft

85

Hinweis: Ich kann Shell nicht so gut verwenden.

Ich habe versucht, Valgrindmit brewYosemite zu installieren .

brew install --HEAD valgrind

Gegen Ende habe ich einen Fehler beim Verknüpfen bekommen. Als ich versuchte, ihn neu zu installieren, bekam ich:

Warnung: valgrind-HEAD ist bereits installiert, es ist nur nicht verknüpft

Also habe ich es anscheinend schon installiert. Dann versuchte ich basierend auf anderen SO-Fragen und Antworten:

brew link valgrind

Dies schien die Probleme anderer Leute beim Verknüpfen einer bereits installierten Software zu lösen, aber dies gab mir einen Fehler:

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

Ich habe auch versucht zu aktualisieren, brewaber es hat das Problem nicht gelöst. Wenn es nicht beschreibbar ist, sudowürde es mir vielleicht die Erlaubnis geben, aber ich möchte es nicht verwenden, sudoohne genau zu wissen, was ich tue.

Was passiert und wie kann ich das beheben?

aanrv
quelle

Antworten:

102

Sieht aus wie ein Berechtigungsproblem. Ich würde es versuchen

chmod 755 /usr/local/lib/pkgconfig

Dies sollte das verfügbar machen, dann versuchen Sie es

brew link valgrind

Wenn das nicht funktioniert, würde ich versuchen, es zu überprüfen

brew doctor
Gann14
quelle
5
Ich benutze brew doctorund nach den Anweisungen dann chownzweimal, um das Problem zu lösen.
Yanzi1225627
2
@ yanzi1225627 warum zweimal?
Greg Hilston
31

Erster Lauf

brew link <package>

Wenn ein Fehler auftritt, versuchen Sie eine automatisierte Diagnose

brew doctor

brew doctor gibt eine Liste von Problemen an, die zu Fehlern im Installationsprozess führen können.

Um dies zu beheben Probleme bei widersprüchlichen Dateien, führen Sie eine Liste aller Aktionen zu erhalten , die durchgeführt wird , wird durch Überschreiben ohne sie tatsächlich durchgeführt wird .

So listen Sie alle Dateien auf, die gelöscht werden sollen:

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

gefolgt von diesem Lauf, der das Überschreiben ausführt, vorausgesetzt, Sie haben das Gefühl, dass die durch das Überschreiben ausgeführten Aktionen Ihr System in einen stabileren Zustand versetzen .

So erzwingen Sie den Link und überschreiben alle in Konflikt stehenden Dateien:

 brew link --overwrite <package>
Vinay Vemula
quelle
13

Wenn keine der oben genannten Lösungen funktioniert, versuchen Sie dies.

sudo chown -R $USER:admin /usr/local
brew link <package-name>
Harshit
quelle
3

In meinem Fall hat der Brauarzt es richtig gemacht. Irgendwann wurde / usr / local / lib / pkgconfig so eingestellt, dass es Root und nicht meinem Konto gehört. Das verschriebene Mittel wirkte -

sudo chown -R $(whoami) /usr/local/lib/pkgconfig
Pedro Jiménez
quelle
2

Ich hatte das gleiche Problem und habe es mit der nächsten Lösung gelöst: Führen Sie den Brew Doctor vom Terminal aus, um alle Ihre Fehler zu überprüfen

Führen Sie dann den nächsten Befehl aus:

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

nach dem Lauf:

brew link <package_name>
B.Kleo
quelle
1

Art

link valgrind

Es wird ein Fehler angezeigt, dass es nicht verknüpft werden kann, da das eine oder andere Verzeichnis nicht beschreibbar ist. Cool, wir machen es jetzt beschreibbar. Art

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

Wenn das Verzeichnis nicht beschreibbar ist, können Sie seine Berechtigung nicht ändern und auch nicht beschreibbar machen. Sudo wird diese Operation ermöglichen. chmod ändert den Modus und ermöglicht es allen (a) Benutzern, ihn zu schreiben (w).

Als nächstes werden Sie aufgefordert, das Kennwort Ihres Systems einzugeben. Geben Sie danach erneut ein

link valgrind

und diesmal wird es funktionieren.

monkSinha
quelle
1

Folgendes habe ich versucht und es hat funktioniert:

$ 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.

Gesucht nach pkgconfig: (nach chmod 750)

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

Ich habe es chownwie folgt versucht :

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

es sollte wie folgt aussehen:

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

Nachdem ich es versucht habe:

$ brew link sdl                                                                                                                                                                                                                    
Linking /usr/local/Cellar/sdl/1.2.15... 182 symlinks created
AvkashChauhan
quelle
0

Ich habe ein ähnliches Problem,

$ Brew install sqlite Aktualisieren von Homebrew ... ==> Automatisch aktualisiertes Homebrew! 1 Tap (Homebrew / Core) aktualisiert. Keine Änderungen an Formeln.

Warnung: sqlite-3.17.0 ist bereits installiert, es ist nur nicht verknüpft.

Ich habe versucht, es zu verknüpfen,

$ brown link sqlite Warnung: sqlite ist nur für Fässer verfügbar und muss mit --force verknüpft werden. Beachten Sie, dass dies die Erstellung von Software beeinträchtigen kann.

Dann mach es mit Gewalt,

$ brown link --force sqlite Linking /usr/local/Cellar/sqlite/3.17.0 ... 8 Symlinks erstellt

X. L.
quelle
0

Ich hatte das gleiche Problem mit der Erlaubnis, aber nachdem ich meine Erlaubnis gegeben habe, immer noch Fehler Erlaubnis. Und hier mache ich zuerst:

brew unlink valgrind

und dann,

brew link valgrind

Ich hoffe das hilft.

mbdrian
quelle