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.
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.
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:
$ brew update
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
$ brew install node
Sudo chown -R $(whoami) /usr/local
ferait très bien comme mentionné dans le dépannage du site brassage
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
.
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
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
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 :)
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
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;)
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:
Supprimer le noeud via infusion:
infuser le noeud
a également fait par la force:
brasser désinstaller noeud --force
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 .
Ensuite, assurez-vous de faire la commande suivante:
chown $ USER/usr/local
Ensuite, faites une mise à jour de la préparation (continuez ainsi jusqu'à ce que tout soit mis à jour):
mise à jour de la bière
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
Et enfin, installer le noeud via brew (verbose):
infuser installer -v noeud
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
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
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
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 ...
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
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
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.
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.
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.