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-perm
sin embargo,sudo npm install
no lo hace, aunque agregué"unsafe-perm":true
a package.json ... No estoy seguro de por quénpm install --unsafe-perm
funciona para mí, traté de seguir la implicación de cambiar lauser
configuración predeterminada . Así lo hicenpm set user my_user
ynpm set group my_group
, que agrega las entradas correspondientes en el.npmrc
archivo del usuario raíz . Pero el problema es que lanode_modules
carpeta 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
.npmrc
archivo que contiene:Agregar la misma configuración a
package.json
no tuvo ningún efecto.fuente
RUN npm set unsafe-perm true
He 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/local
y~/Users/user-name
así:sudo chown -R my_name /usr/local
Esto me permitió hacer todo sin
sudo
fuente