node.js - update - reinstall npm with a version manager
gyp WARN EACCES usuario "root" no tiene permiso para acceder al directorio dev (3)
Tratando de
sudo npm install protractor -g
y el mismo error / advertencia notorio otra vez (Google no sirvió para nada):
gyp WARN EACCES user "root" does not have permission to access the dev dir "/Users/dmitrizaitsev/.node-gyp/0.12.0"
Lo que parece suceder es que la node version 0.12.0
se descarga y se reconstruye, una y otra vez durante la misma instalación, a pesar de ser la versión actual del nodo en mi máquina:
node -v
v0.12.0
Preguntas:
¡El directorio "/Users/dmitrizaitsev/.node-gyp/0.12.0" está realmente perdido! ¿Por qué un mensaje tan engañoso?
¿Por qué este directorio no se creó ni durante el
node v0.12.0
ni durante la reconstrucción previa exitosa connode-gyp
?(Obviamente) ¿Cómo puedo evitar que esto suceda?
Ejecuto Mac OSX 10.8.5 si eso tiene alguna importancia.
ACTUALIZAR. Hay una manera mejor: cambiar el directorio global predeterminado de npm
al subdirectorio de usuario al que ya tiene los permisos correctos, por lo que no es necesario que se confunda con los permisos o la propiedad del archivo del sistema en primer lugar.
Como se recomienda en https://docs.npmjs.com/getting-started/fixing-npm-permissions :
- Haga un directorio para instalaciones globales:
mkdir ~/npm-global
- Configure npm para usar la nueva ruta del directorio:
npm config set prefix ''~/npm-global''
- Abra o cree un
~/.profile
(o~/.bash_profile
etc) y agregue esta línea (al final del archivo):
export PATH=~/npm-global/bin:$PATH
Consulte también la guía de Sindre Sorhus sobre el tema: https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md
Han calculado lo que estaba mal:
El directorio tenía permisos incorrectos: no se podía escribir (lo que hubiera sido un mejor mensaje de error que "accesible").
Y debido a que no se podía escribir, se usó y eliminó un directorio temporal después de cada uso, razón por la cual toda la descarga tuvo que ejecutarse una y otra vez.
La solución es establecer permisos de usuario con
sudo chown -R $USER <directory>
y nunca sudo npm
nuevamente. Parece que cada vez que ejecuta sudo npm
, todos los subdirectorios creados obtienen permisos erróneos, lo que ocasionará problemas más adelante.
Mira aquí para más detalles .
Eso es porque no tiene una carpeta en este directorio "/Users/dmitrizaitsev/.node-gyp/0.12.0".
Simplemente crea una nueva carpeta llamada 0.12.0 que es el número de versión de tu nodo
Arreglará el problema.
Prueba con:
sudo npm install -g module --unsafe-perm