web-dev-qa-db-fra.com

Erreur: l'étape "Lien brassage" n'a pas abouti.

J'essaie d'installer node.js via Homebrew. Malheureusement, j'obtiens cette erreur:

➜  ~  brew install node
==> Downloading http://nodejs.org/dist/v0.8.10/node-v0.8.10.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/node/0.8.10
==> make install
==> Caveats
Homebrew installed npm.
We recommend prepending the following path to your PATH environment
variable to have npm-installed binaries picked up:
  /usr/local/share/npm/bin
Warning: Could not link node. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link node'
==> Summary
/usr/local/Cellar/node/0.8.10: 856 files, 13M, built in 103 seconds

Alors j'essaie de lier le noeud manuellement ...

➜  ~  brew link node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.8.10/lib/node_modules/npm/scripts/relocate.sh
Target /usr/local/lib/node_modules/npm/scripts/relocate.sh already exists. You may need to delete it.
To force the link and delete this file, do:
  brew link -f formula_name

To list all files that would be deleted:
  brew link -n formula_name

Pas de chance, alors j'essaie de lier avec force le noeud ...

➜  ~  brew link -f node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...

Error: Permission denied - /usr/local/lib/dtrace/node.d

Je ne connais rien à dtrace et j'ai peur de déranger les permissions, alors j'ai essayé de Sudo ..

➜ ~ git:(master) Sudo brew link -f node
Password:
Error: Cowardly refusing to `Sudo brew link'
You can use brew with Sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.

J'ai essayé de désinstaller le noeud via brew uninstall node et de relancer l'installation sans succès.

152
chandlervdw

Le paquet homebrew pour node.js inclut maintenant npm à nouveau. C'est donc ce qui m'est arrivé lorsque j'ai raté le message du paquet homebrew sur la suppression de la version autonome en premier.

En supposant, comme moi, que vous avez déjà cassé node/npm en tentant la mise à niveau avant de savoir en npm uninstall npm -g, vous pouvez d'abord rm -rf /usr/local/lib/node_modules/npm puis brew link node. Cela supprime le paquet autonome npm auto-hébergé (plutôt que celui que Brew aimerait installer) et laisse brasser un lien symbolique pour le paquet fourni par Cellar.

121
natevw

Je lance Mac OS X Mavericks. J'ai essayé d'installer le noeud 0.10.25 et la première réponse ne fonctionnait pas pour moi.

natevw dit à rm -rf /usr/local/lib/node_modules/npm mais si les autorisations sur /usr/local/lib/node_modules ressemblent à ceci:

drwxr-xr-x   3 root      admin   102 Feb  2 20:45 node_modules

alors brew ne pourra pas créer son lien symbolique npm dans ce répertoire. Voici ma solution:

Étape 1: Mettre à jour Homebrew

$ brew update

Étape 2: supprimez le noeud/npm partout sur votre système.

Certaines de ces commandes ne sont pas nécessaires en fonction de la manière dont vous avez installé node/npm dans le passé.

$ brew uninstall npm
$ brew uninstall node
$ npm uninstall npm -g
$ Sudo rm -rf /usr/local/lib/node_modules

Remarque: j'avais des fichiers de nœud parasite que j'avais trouvés en exécutant brew -v link node (ce qui m'a donné le résultat détaillé des erreurs de liaison dont se plaignait Brew). Vous devrez peut-être:

$ Sudo rm -rf /usr/local/include/node
$ Sudo rm -rf /usr/local/lib/node

Étape 3: Ouvrez un nouveau terminal et installez le nœud

$ brew install node
148
franksort
Sudo chown -R $(whoami) /usr/local 

ferait très bien comme mentionné dans le dépannage du site brassage

https://github.com/Homebrew/homebrew/wiki/troubleshooting

40
Talal

Vous avez probablement déjà installé une version plus ancienne de node.js en utilisant une méthode différente. Vous devez donc supprimer manuellement les fichiers qui se bloquent.

Faites brew link -n node et supprimez manuellement les fichiers et répertoires en conflit, puis essayez à nouveau brew link node.

36
Trevor Dixon

Je suis un peu en retard, ce qui a fonctionné pour moi a été ceci:

* npm uninstall npm -g

* brew uninstall node

* brew install node

* Sudo rm -rf /usr/local/lib/dtrace/node.d

* brew link node (caused error with permissions)

* Sudo chmod 777 /usr/local/lib/dtrace/node.d

* brew link node

Tout était réussi après cette séquence

33
Will

Essaye ça. A obtenu d'une autre référence et a travaillé pour moi.

Sudo brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
Sudo chown -R $(whoami) /usr/local
brew link --overwrite node
Sudo brew postinstall node
14
Randula

J'ai eu le même problème après avoir transféré toutes mes applications de mon ancien Mac vers mon nouveau.

J'ai trouvé la solution en exécutant brew doctor:

Avertissement: des liens symboliques rompus ont été trouvés. Supprimez-les avec brew Prune

Après avoir exécuté brew Prune, Homebrew est enfin de retour :)

9
Kévin L. R.

merci @suweller.

J'ai résolu le problème:

➜  bin git:(master) ✗ brew link node
Linking /usr/local/Cellar/node/0.10.25... Warning: Could not link node. Unlinking...

Error: Permission denied - /usr/local/lib/node_modules/npm

J'ai eu le même problème que Suweller:

➜  bin git:(master) ✗ ls -la /usr/local/lib/ | grep node
drwxr-xr-x   3 24561  wheel   102 11 Okt  2012 node
drwxr-xr-x   3 24561  wheel   102 27 Jan 11:32 node_modules

donc j'ai résolu ce problème en:

➜  bin git:(master) ✗ Sudo chown $(users) /usr/local/lib/node_modules
➜  bin git:(master) ✗ Sudo chown $(users) /usr/local/lib/node

après avoir résolu ce problème, j'en ai eu un autre:

➜  bin git:(master) ✗ brew link node
Linking /usr/local/Cellar/node/0.10.25... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.10.25/lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name

J'ai donc supprimé node.d par:

➜  bin git:(master) ✗ Sudo rm /usr/local/lib/dtrace/node.d

a une autre erreur de permission:

➜  bin git:(master) ✗ brew link node
Linking /usr/local/Cellar/node/0.10.25... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.10.25/lib/dtrace/node.d
/usr/local/lib/dtrace is not writable. You should change its permissions.

et le fixe:

➜  bin git:(master) ✗ Sudo chown $(users) /usr/local/Cellar/node/0.10.25/lib/dtrace/node.d

et finalement tout a fonctionné:

➜  bin git:(master) ✗ brew link node
Linking /usr/local/Cellar/node/0.10.25... 1225 symlinks created
4
zero3nna

Mon problème avait une solution légèrement différente. Le répertoire dans lequel brew voulait créer les liens symboliques n'appartenait pas à l'utilisateur actuel.

ls -la /usr/local/bin/lib/node | grep node a donné:

drwxr-xr-x    3 24561  wheel   102 May  4  2012 node
drwxr-xr-x    7 24561  wheel   238 Sep 18 16:37 node_modules

Pour moi, ce qui suit l'a corrigé:

Sudo chown $(users) /usr/local/bin/lib/node_modules
Sudo chown $(users) /usr/local/bin/lib/node

ps. $(users) sera étendu à votre nom d'utilisateur, s'est un peu mis en quatre pour aider les pâtes à copier paresseux;)

4
suweller

La plupart des problèmes d'installation de brassée avec le nœud sont causés par des erreurs d'autorisation ou par le fait qu'un nœud a déjà été installé, puis tente de l'installer via brew. La solution qui a finalement fonctionné pour moi était:

ATTENTION: Ceci désinstallera nodejs (plusieurs versions), utilisez avec précaution:

  1. Supprimer le noeud via infusion:

    infuser le noeud

  2. a également fait par la force:

    brasser désinstaller noeud --force

  3. Pour utiliser le script Source: Remove node :

    curl -O https://raw.githubusercontent.com/DomT4/scripts/master/OSX_Node_Removal/terminatenode.sh

Ensuite:

chmod +x /path/to/terminatenode.sh

Ensuite:

./terminatenode.sh .
  1. Ensuite, assurez-vous de faire la commande suivante:

    chown $ USER/usr/local

  2. Ensuite, faites une mise à jour de la préparation (continuez ainsi jusqu'à ce que tout soit mis à jour):

    mise à jour de la bière

  3. Nettoyez la préparation et relancez la mise à jour (peut-être redondante) et exécutez la procédure pour vérifier que tout est en place:

    nettoyage de la bière; mise à jour de la bière; médecin brasseur

  4. Et enfin, installer le noeud via brew (verbose):

    infuser installer -v noeud

3
AhsenB

la réponse ultime: changez le propriétaire de ce répertoire pour qui que vous soyez

Sudo chown -R `whoami` /usr/local/include

qui est également recommandé par brasser si vous exécutez brasser docteur

2
Bobo

par le Finder, supprimez ce fichier:

/usr/local/lib/dtrace/node.d

dans le terminal:

$ brew link --overwrite --dry-run node

ensuite:

$ brew link node
1
monimen

J'avais une erreur lors de l'installation qui n'arrive pas à lier le noeud et/usr/local/include n'est pas accessible en écriture

La solution ci-dessous a fonctionné pour moi: - Créez d'abord le dossier d'inclusion, notez que cela nécessite des privilèges Sudo

cd /usr/local

Sudo mkdir include

Sudo chown -R $(whoami) $(brew --prefix)/*

brew link node
1
Pukhraj soni

J'ai également réussi à gâcher mon NPM et à installer des packages entre ces versions Homebrew et quel que soit le nombre de nœuds non liés/liés et désinstallés/installés, cela ne fonctionnait toujours pas.

Comme il s'avère que vous devez supprimer NPM du chemin, sinon Homebrew ne l'installera pas: https://github.com/mxcl/homebrew/blob/master/Library/Formula/node.rb#L117

J'espère que cela va aider quelqu'un avec le même problème et économiser cette heure ou alors j'ai dû passer à la recherche du problème ...

1
dain

Je me débattais avec ça pendant un moment. (pour moi "npm uninstall npm -g" n'a rien fait)

J'ai essayé un tas de choses:

npm uninstall npm -g
brew uninstall node
brew install node

J'avais encore des problèmes et des erreurs se sont produites lorsque j'ai essayé de lier les fichiers de nœuds.

Enfin j'ai essayé ça

brew link --overwrite node

Cela semblait avoir résolu le problème. (il écrase tous les fichiers en conflit et fait également le lien noeud et npm)

J'espère que cela t'aides

0
Tanuj

J'ai corrigé cela dans El Capitan en utilisant la commande suivante. Honnêtement, je ne sais pas du tout ce que ça fait, mais je pensais le partager car cela réglait mon problème.

brew link --overwrite node
0
Fizzix

Je ne sais pas, si c'est une bonne idée ou non: après avoir essayé toutes les autres solutions sans succès, je viens de renommer/usr/local/lib/dtrace, noeud lié, puis de renommer à nouveau le répertoire. Après cela, le noeud a fonctionné comme prévu.

0
Alex Maiburg

J'étais en train de me brouiller la tête avec un nœud de liaison symbolique ... et rien ne semblait fonctionner ... mais finalement, ce qui a fonctionné, c'est la définition des autorisations adéquates. Ce 'Sudo chown -R $ (whoami)/usr/local' a fait le travail pour moi.

0
Shahsayyad

J'ai complètement désinstallé le brassage et recommencé, pour retrouver le même problème.

Brew semble fonctionner en créant une liaison symbolique entre les fichiers binaires requis et votre système, où d'autres méthodes d'installation pourraient généralement copier les fichiers.

J'ai trouvé un ensemble existant de bibliothèques de noeuds ici:

/usr/local/include/node

Après quelques critiques, je me suis souvenu d’avoir installé noeud à la date indiquée sur cette ancienne version et ce n’était pas le cas.

J'ai supprimé manuellement tout ce dossier et lié avec succès npm.

Cela expliquerait pourquoi utiliser désinstallation de Brew ou même désinstaller Brew lui-même n’a aucun effet.

La réponse la mieux classée le dit très simplement, mais je pensais ajouter mes observations sur la raison pour laquelle cela est nécessaire.

J'imagine que de nombreux problèmes avec d'autres paquets de brassage pourraient être causés par d'anciennes instances non-brassées de paquets qui gênent.

0
Henry