J'essaie de configurer mon environnement de nœud sur une nouvelle instance d'Ubuntu 12.04, avec le nœud 0.8.14 déjà installé, mais j'ai rencontré des problèmes lorsque j'essaie de courir npm install
. Donc, quand j'essaye npm install
, cela dit que je dois l'exécuter en tant que root ou administrateur:
Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script'
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/coffee-script',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/coffee-script',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR! 'Object.oncomplete (fs.js:297:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
Mais lorsque vous essayez de l'exécuter en tant que sudo, cela dit:
npm WARN cannot run in wd PackNodeDev@0.0.1-166 npm install -g coffee-script node-gyp (wd=/home/ubuntu/PackNode)
Dans mon package.json, il contient les scripts suivants:
"scripts": {
"preinstall": "npm install -g coffee-script node-gyp",
"start": "node server.js",
"test": "mocha --require should --compilers coffee:coffee-script --colors"
},
Le reste des dépendances de développement est valide depuis que je l'ai installé sur ma propre machine (Mac) Quelqu'un a-t-il une idée de pourquoi cela se produit?
sudo npm install --unsafe-perm
maissudo npm install
pas, bien que j'ai ajouté"unsafe-perm":true
à package.json ... Je ne sais pas pourquoinpm install --unsafe-perm
fonctionne pour moi, j'ai essayé de suivre l'implication concernant la modification de lauser
configuration par défaut . J'ai donc faitnpm set user my_user
etnpm set group my_group
, qui ajoute les entrées correspondantes dans le.npmrc
fichier de l'utilisateur racine . Mais le problème est que lenode_modules
dossier lui-même et ses sous-dossiers appartiennent toujours à root, donc cela n'aide pas. Je ne pouvais trouver aucun moyen de ne pas les faire appartenir à root.La seule chose qui a fonctionné pour moi a été d'ajouter un
.npmrc
fichier contenant:L'ajout de la même configuration à
package.json
n'a eu aucun effet.la source
RUN npm set unsafe-perm true
J'ai rencontré le même problème en essayant de publier mon application nodejs sur un serveur privé exécutant CentOs en utilisant l'utilisateur root. La même erreur est déclenchée par "postinstall": "./node_modules/bower/bin/bower install" dans mon fichier package.json donc la seule solution qui fonctionnait pour moi est d'utiliser les deux options pour éviter l'erreur:
1: utilisez l'option --allow-root pour la commande d'installation de bower
2: utilisez l'option --unsafe-perm pour la commande npm install
la source
OP ici, j'ai beaucoup appris sur le nœud depuis que j'ai posé cette question pour la première fois. Bien que la réponse de Dmitry ait été très utile, ce qui l'a finalement fait pour moi, c'est d'installer le nœud avec les autorisations appropriées.
Je recommande vivement de ne pas installer node à l'aide de gestionnaires de packages, mais plutôt de le compiler vous-même afin qu'il réside dans un répertoire local avec des autorisations normales.
Cet article fournit une instruction étape par étape très claire sur la façon de procéder:
https://www.digitalocean.com/community/tutorials/how-to-install-an-upstream-version-of-node-js-on-ubuntu-12-04
la source
J'ai corrigé cela en changeant la propriété de
/usr/local
et~/Users/user-name
comme ceci:sudo chown -R my_name /usr/local
Cela m'a permis de tout faire sans
sudo
la source