Installé, mais pas lié

86

Remarque: je ne suis pas très doué pour utiliser shell.

J'essayais d'installer en Valgrindutilisant brewsur Yosemite.

brew install --HEAD valgrind

Vers la fin, j'ai eu une erreur liée à la liaison, alors quand j'ai essayé de réinstaller, j'ai obtenu:

Attention: valgrind-HEAD déjà installé, il n'est tout simplement pas lié

Donc, apparemment, je l'ai déjà installé. Ensuite, sur la base d'autres questions et réponses SO, j'ai essayé:

brew link valgrind

Cela semblait résoudre les problèmes d'autres personnes avec la liaison d'un logiciel déjà installé, mais cela m'a donné une erreur:

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

J'ai également essayé de mettre à jour brewmais cela n'a pas résolu le problème. S'il n'est pas accessible en écriture, peut sudo- être me donnerait la permission mais je ne veux pas l'utiliser sudosans savoir exactement ce que je fais.

Que se passe-t-il et comment y remédier?

aanrv
la source

Réponses:

103

On dirait un problème d'autorisation. J'essaierais de faire ça

chmod 755 /usr/local/lib/pkgconfig

Cela devrait rendre cela disponible, puis essayez

brew link valgrind

Si cela ne fonctionne pas, j'essaierais de faire un contrôle

brew doctor
Gann14
la source
5
J'utilise brew doctor, et par les instructions, puis utilise chowndeux fois pour résoudre le problème.
yanzi1225627
2
@ yanzi1225627 pourquoi deux fois?
Greg Hilston
31

Première exécution

brew link <package>

S'il donne une erreur, essayez un diagnostic automatisé

brew doctor

brew doctor donne une liste de problèmes pouvant entraîner des erreurs dans le processus d'installation.

Pour résoudre les problèmes en cas de fichiers en conflit, exécutez pour obtenir une liste de toutes les actions qui seront effectuées par écrasement sans les exécuter réellement.

Pour lister tous les fichiers qui seraient supprimés:

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

suivi de cette exécution qui exécutera l'écrasement, en supposant que vous estimiez que les actions effectuées par l'écrasement amèneront votre système à un état plus stable .

Pour forcer le lien et écraser tous les fichiers en conflit:

 brew link --overwrite <package>
Vinay Vemula
la source
13

Si aucune des solutions ci-dessus ne fonctionne, essayez ceci.

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

Dans mon cas, le docteur en bière a bien compris. À un moment donné, / usr / local / lib / pkgconfig a été défini pour appartenir à root plutôt qu'à mon compte. Le remède prescrit a fonctionné -

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

J'ai eu le même problème et j'ai résolu avec la solution suivante: exécutez le docteur d'infusion du terminal pour vérifier toutes vos erreurs

puis exécutez la commande suivante:

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

après la course:

brew link <package_name>
B.Kleo
la source
1

Type

link valgrind

Il affichera une erreur indiquant qu'il ne peut pas être lié car tel ou tel répertoire n'est pas accessible en écriture. Cool, nous le rendons inscriptible maintenant. Type

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

Si le répertoire n'est pas accessible en écriture, vous ne pourrez pas non plus modifier son autorisation et le rendre accessible en écriture. Sudo rendra cette opération possible. chmod changera le mode et permettra à tous (a) les utilisateurs de l'écrire (w).

Ensuite, vous serez invité à saisir le mot de passe de votre système. Après cela, tapez à nouveau

link valgrind

et cela fonctionnera cette fois.

moine Sinha
la source
1

Voici ce que j'ai essayé et cela a fonctionné:

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

Cherché pkgconfig: (après chmod 750)

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

J'ai essayé chowncomme ci-dessous:

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

cela devrait ressembler à ci-dessous:

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

Après l'avoir essayé:

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

J'ai un problème similaire,

$ brew install sqlite Mise à jour de Homebrew ... ==> Homebrew mis à jour automatiquement! Mise à jour 1 robinet (homebrew / core). Aucune modification des formules.

Attention: sqlite-3.17.0 déjà installé, il n'est tout simplement pas lié.

J'ai essayé de le lier,

$ brew link sqlite Avertissement: sqlite est uniquement keg et doit être lié à --force Notez que cela peut interférer avec le logiciel de construction.

Alors fais-le par la force,

$ brew link --force sqlite Linking /usr/local/Cellar/sqlite/3.17.0 ... 8 liens symboliques créés

X. L
la source
0

J'ai eu le même problème concernant l'autorisation, mais après avoir donné ma permission, j'ai toujours une autorisation d'erreur. Et ici je fais, d'abord:

brew unlink valgrind

puis,

brew link valgrind

espérons cette aide.

mbdrian
la source
0
brew install cocoapods --build-from-source
brew link --overwrite cocoapods

Les seules commandes qui ont fonctionné pour moi après la mise à niveau vers MAC OS Mojave 10.14.6

Naishta
la source