with update permission node manager mac fixing actualizar node.js permissions npm root

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 con node-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 :

  1. Haga un directorio para instalaciones globales:

mkdir ~/npm-global

  1. Configure npm para usar la nueva ruta del directorio:

npm config set prefix ''~/npm-global''

  1. 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