node.js - node - npm permission denied
Error: EACCES: permiso denegado (11)
Ejecuto npm install lodash pero arroja Error: EACCES: error de permiso denegado . Sé que es un problema de permiso, pero que yo sepa, no se requiere permiso sudo para instalar el módulo de nodo localmente. Si lo ejecuto con sudo, se instala dentro de la carpeta ~ / node_modules. drwxrwxr-x es el permiso de archivo de la carpeta existente. No puedo entender qué pudo haber salido mal.
A continuación se muestra el mensaje de error.
npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir
npm ERR! Error: EACCES: permission denied, mkdir ''/home/rupesh/node_modules/lodash''
npm ERR! at Error (native)
npm ERR! { [Error: EACCES: permission denied, mkdir ''/home/rupesh/node_modules/lodash'']
npm ERR! errno: -13,
npm ERR! code: ''EACCES'',
npm ERR! syscall: ''mkdir'',
npm ERR! path: ''/home/rupesh/node_modules/lodash'',
npm ERR! fstream_type: ''Directory'',
npm ERR! fstream_path: ''/home/rupesh/node_modules/lodash'',
npm ERR! fstream_class: ''DirWriter'',
npm ERR! fstream_stack:
npm ERR! [ ''/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25'',
npm ERR! ''/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53'',
npm ERR! ''FSReqWrap.oncomplete (fs.js:82:15)'' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! /home/rupesh/Desktop/es6/npm-debug.log
¡Ejecute estos comandos y el problema se resolverá!
sudo chmod -R 777 /usr/local/bin
sudo chmod -R 777 /usr/local/lib/node_modules
Crear package.json usando npm init resolvió mi problema.
Elimine la carpeta dist y esto resolverá mi problema.
Este comando soluciona el problema. A mí me funcionó:
sudo npm install -g --unsafe-perm=true --allow-root
FWIW Tuve los mismos síntomas, pero con un paquete diferente.
Crear
package.json
y ejecutar
npm init
NO
resolvió mi problema.
En este sistema, aparentemente se crearon nuevas carpetas en esta ubicación con permisos de root.
Durante la
npm install
, se crean nuevas carpetas.
Esto provocó que la instalación de npm fallara parcialmente, incluso con sudo.
La solución fue ejecutar la
npm install app
en una ubicación diferente sin umask raíz.
No tiene permisos de escritura para
others
(rx).
Probar con
chmod a+w <folder>
y repetir.
Por lo que puedo ver en tus registros que publicaste:
npm ERR! code: ''EACCES'',
npm ERR! syscall: ''mkdir'',
npm ERR! path: ''/home/rupesh/node_modules/lodash'',
npm ERR! fstream_type: ''Directory'',
npm ERR! fstream_path: ''/home/rupesh/node_modules/lodash'',
npm ERR! fstream_class: ''DirWriter'',
El directorio
/home/rupesh/node_modules/
no tiene los permisos necesarios para crear el directorio, así que ejecute
chown -r rupesh:rupesh /home/rupesh/node_modules/
esto debería resolverlo.
Primero instale sin -g (global) en la raíz. Después de intentar usar -g (global) Funcionó para mí.
Resolví este problema cambiando el permiso de mi directorio npm. Fui al directorio global de npm para mí, estaba en
/home/<user-name>
Fui a este directorio ingresando este comando
cd /home/<user-name>
y luego cambió el permiso de la carpeta .npm ingresando este comando.
sudo chmod -R 777 ".npm"
Funcionó como un encanto para mí. Pero hay una falla de seguridad con esto, es decir, su directorio global de paquetes es accesible a todos los niveles.
Tengo el mismo problema con la instalación del servidor webpack en todo el mundo. Siga los pasos de esta URL. Solucioné mi problema, puedo trabajar para usted.
Pasos mencionados anteriormente Allí: Haga una copia de seguridad de su computadora antes de comenzar.
Haga un directorio para instalaciones globales:
1.
mkdir ~/.npm-global
Configure npm para usar la nueva ruta del directorio:
2.
npm config set prefix ''~/.npm-global''
Abra o cree un archivo ~ / .profile y agregue esta línea:
3.
export PATH=~/.npm-global/bin:$PATH
De vuelta en la línea de comando, actualice las variables de su sistema:
4.
source ~/.profile
Prueba: descargue un paquete globalmente sin usar sudo.
npm install -g jshint
En lugar de los pasos 2 a 4, puede usar la variable ENV correspondiente (por ejemplo, si no desea modificar ~ / .profile):
NPM_CONFIG_PREFIX=~/.npm-global
Tuve un problema en Linux. escribí
chown -R myUserName ./*
en mi carpeta de proyecto.