Estoy tratando de configurar mi entorno de nodo en una nueva instancia de Ubuntu 12.04, con el Nodo 0.8.14 ya instalado, pero me encontré con problemas cuando intento ejecutarlo npm install. Entonces, cuando lo intento npm install, dice que necesito ejecutarlo como root o administrador:
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.
Pero cuando intenta ejecutarlo como sudo, dice lo siguiente:
npm WARN cannot run in wd PackNodeDev@0.0.1-166 npm install -g coffee-script node-gyp (wd=/home/ubuntu/PackNode)
En mi package.json, contiene los siguientes scripts:
"scripts": {
"preinstall": "npm install -g coffee-script node-gyp",
"start": "node server.js",
"test": "mocha --require should --compilers coffee:coffee-script --colors"
},
El resto de las dependencias de desarrollo son válidas ya que lo he estado instalando bien en mi propia máquina (Mac). ¿Alguien tiene idea de por qué sucede esto?

sudo npm install --unsafe-permsin embargo,sudo npm installno lo hace, aunque agregué"unsafe-perm":truea package.json ... No estoy seguro de por quénpm install --unsafe-permfunciona para mí, traté de seguir la implicación de cambiar lauserconfiguración predeterminada . Así lo hicenpm set user my_userynpm set group my_group, que agrega las entradas correspondientes en el.npmrcarchivo del usuario raíz . Pero el problema es que lanode_modulescarpeta en sí y sus subcarpetas aún son propiedad de root, por lo que eso no ayuda. No pude encontrar ninguna manera de hacer que no sean propiedad de root.Lo único que funcionó para mí fue agregar un
.npmrcarchivo que contiene:Agregar la misma configuración a
package.jsonno tuvo ningún efecto.fuente
RUN npm set unsafe-perm trueHe experimentado el mismo problema al intentar publicar mi aplicación nodejs en un servidor privado que ejecuta CentOs con un usuario root. "Postinstall" dispara el mismo error: "./node_modules/bower/bin/bower install" en mi archivo package.json, por lo que la única solución que funcionaba para mí es usar ambas opciones para evitar el error:
1: use la opción --allow-root para el comando de instalación de Bower
2: use la opción --unsafe-perm para el comando de instalación npm
fuente
OP aquí, he aprendido mucho más sobre el nodo desde que hice esta pregunta por primera vez. Aunque la respuesta de Dmitry fue muy útil, lo que finalmente lo hizo por mí es instalar el nodo con los permisos correctos.
Recomiendo no instalar el nodo utilizando ningún administrador de paquetes, sino compilarlo usted mismo para que resida en un directorio local con permisos normales.
Este artículo proporciona una instrucción paso a paso muy clara sobre cómo hacerlo:
https://www.digitalocean.com/community/tutorials/how-to-install-an-upstream-version-of-node-js-on-ubuntu-12-04
fuente
Lo arreglé cambiando la propiedad de
/usr/localy~/Users/user-nameasí:sudo chown -R my_name /usr/localEsto me permitió hacer todo sin
sudofuente