¿Qué podría estar causando el error Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
?
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log
Respuestas:
cambia los permisos de tu archivo ... así
primero verifique quién posee el directorio
está negando el acceso porque la carpeta node_module es propiedad de root
así que esto debe cambiarse cambiando la raíz a su usuario, pero primero ejecute el siguiente comando para verificar su usuario actual ¿Cómo obtengo el nombre del usuario activo a través de la línea de comando en OS X?
O
whoami
luego cambia de dueño
O
O
fuente
sudo chown -R myuser:Company\\Domain\ Users /usr/local/lib/node_modules
. Para enumerar correctamente el nombre del grupo que hiceid -gn myuser
.illegal group name
. Así que cambié el comando asudo chown -R ownerName: /usr/local/lib/node_modules
y funcionó.chown
. github.com/nvm-sh/nvmPara minimizar la posibilidad de errores de permisos, puede configurar npm para usar un directorio diferente. En este ejemplo, creará y usará un directorio oculto en su directorio de inicio.
Copia de seguridad de tu computadora. En la línea de comando, en su directorio de inicio, cree un directorio para instalaciones globales:
mkdir ~/.npm-global
Configure npm para usar la nueva ruta del directorio:
npm config set prefix '~/.npm-global'
En su editor de texto preferido, abra o cree un
~/.profile
archivo y agregue esta línea:
export PATH=~/.npm-global/bin:$PATH
En la línea de comando, actualice las variables de su sistema:
source ~/.profile
Para probar su nueva configuración, instale un paquete globalmente sin usar sudo
fuente
npm config set prefix
(especialmente si está escribiendo un instalador no root), puede anular laPREFIX
variable env o proporcionar la--prefix
opción, ambas equivalentes anpm config set prefix
. (no estoy seguro de cuál anula cuál)Todo lo que necesita hacer es agregar USUARIO al propietario de / local / lib
fuente
chown
un alto riesgo de destruir la estructura de permisos de todo su sistema de archivos.sudo chmod -R 777 /
.intente agregar sudo antes de cualquier comando que esté intentando.
así: sudo npm install
Usar sudo con un comando en Linux / UNIX generalmente eleva sus permisos a niveles de superusuario. En Windows, la cuenta de superusuario generalmente se llama 'Administrador'. En Linux / Unix, la cuenta de superusuario generalmente se denomina 'root'.
El usuario root tiene permiso para acceder, modificar o eliminar casi cualquier archivo en su computadora. Las cuentas de usuario normales pueden acceder, modificar o eliminar muchos menos archivos. Las restricciones en una cuenta normal protegen su computadora de programas o usuarios no autorizados o dañinos. Algunos procesos requieren que realice acciones en archivos o carpetas a los que normalmente no tiene permisos de acceso. Instalar un programa al que todos puedan acceder es una de estas acciones.
En su caso, ejecutar el comando de instalación con sudo le otorga los permisos del superusuario y le permite modificar archivos que su usuario normal no tiene permiso para modificar.
fuente
Intenté la solución de la respuesta dada por @okanda pero no funcionó para mí.
Sin embargo, funcionó perfectamente cuando lo hice para varias carpetas como se menciona en este hilo: https://github.com/angular/angular-cli/issues/9676#issuecomment-464857493
fuente
Al instalar paquetes globales en ubuntu , necesita permisos de escritura especiales mientras escribe en la
usr/bin
carpeta. Es por razones de seguridad. Entonces, cada vez que instales un paquete global, usa:Para su caso específico, será:
fuente
Parece que te encuentras con problemas de permisos. Si está instalando
npm-packages
, es posible que obtenga unEACCES
error al intentar instalar un paquete globalmente. Esto significa que no tiene permiso para escribir en los directorios quenpm
utiliza para almacenar paquetes y comandos globales.Intenta ejecutar comandos:
sudo chmod u+x -R 775 ~/.npm
ysudo chown $USER -R ~/.npm
o simplemente puede ejecutar cualquiernpm
comando consudo
, que debe conseguir resolver su problema.Si está instalando un
npm-package
local, entonces debe estar en su directorio de proyecto local y puede intentar ejecutar elsudo npm install <pkg-name>
comando para instalar el paquete requerido. el propósito de usarsudo
es que cambiará sus permisos de propietario para que pueda autorizar a su usuario actual a ejecutarnpm
comandos.Le recomiendo que eche un vistazo a https://docs.npmjs.com/getting-started/fixing-npm-permissions
fuente
Estaba tratando de instalar react expo y aparte de sudo tuve que agregar --unsafe-perm
Me gusta esto. Esto resuelve mi problema
fuente
Si enfrenta este problema en su Mac. Sigue estos pasos
Primero verifique quién es el propietario de este archivo utilizando el siguiente comando
encontrarás un archivo como el siguiente, uno de ellos está debajo
¿Ha notado que el archivo anterior es propio de la raíz, para realizar cambios en el interior, debe cambiar la ruta de acceso del propietario?
puede usar verificar quién es el usuario actual con este comando
y luego puede cambiar llamando a este comando (simplemente reemplace su nombre de usuario con ownerName)
en mi caso, como sabes, el usuario es "yamsol" llamaré a este comando de esta manera
Eso es.
fuente
Tenga cuidado con todas las respuestas que cambian el propietario de todos los directorios en / usr / local. ¡ Básicamente, no ensucie el sistema Linux!
Creo que la mejor manera es usar su propia carpeta para localizar todos los paquetes globales: https://www.competa.com/blog/how-to-run-npm-without-sudo/
fuente
Puede instalar npm a través del administrador de versiones de Node o un instalador de Node. En los documentos decía:
Dado que tiene el error de permiso , probablemente instaló npm a través de un instalador de Nodo y ahora necesita reinstalarlo con un nvm (administrador de versión de nodo).
Afortunadamente, esto es muy simple. Ni siquiera necesita eliminar su versión actual de npm o Node.js.
Todo lo que necesitas hacer es
Instalar nvm. Para el uso del nodo OSX o Linux:
Esto crea una carpeta nvm en su directorio de inicio.
Luego
Instale npm y node.js a través de nvm. Para hacerlo, solo llame
Ahora puede instalar el paquete en todo el mundo sin necesidad de utilizar
sudo
o cambiar el propietario delnode_modules
enusr
carpeta.fuente
fish
, para que funcione correctamente nvm necesita una envoltura de pescado github.com/FabioAntunes/fish-nvmUse este comando para instalar
npm
como usuario de sudo:en lugar de npm install -g create-react-a pp.
fuente
Pude solucionar el problema usando lo siguiente en mac.
fuente
Para usuarios nvm
y
reemplace
v8.9.1
con su versión de nodo que está utilizando.fuente
sudo chown -R $USER home/samuel/.nvm/versions/node/v8.10.0/lib/node_modules
Parece que intentó instalar un paquete npm globalmente en lugar de localmente, como se
man npm install
describe a continuación:Generalmente, cuando está configurando un proyecto npm (entre muchos otros que podría tener), no es una buena idea instalar paquetes en los módulos globales de Node.js (/ usr / local / lib / node_modules), como su registro de depuración sugirió.
En lugar de usar
-g
, use--save
, que guardará automáticamente el paquete como una dependencia para supackage.json
archivo:Me gusta esto:
Pero como se mencionó en las otras respuestas, si va a usar
-g
, debe usarsudo
( si su usuario tiene privilegios de sudo: vea / etc / sudoers ) al realizarnpm install express-generator -g
, pero de hecho, no es una buena idea, posiblemente causando problemas de permisos.AVISO
Hay instrucciones para instalar
express-generator
con la-g
opción, para tener el scriptexpress-cli.js
disponible en la ruta del sistema, pero también puede usar el script instalado localmente, ubicado en elnode_modules
proyecto if npm:En mi humilde opinión, usar
-g
(también usarsudo
) es como hic sunt dracones , si no estás seguro de las consecuencias.Para mayor información:
fuente
Esto ocurrió como resultado de
npm
no poder acceder a sunode_modules
directorio global localmente, ejecutandop.ej
soluciona el problema, ahora puede ejecutar el comando que ejecutó nuevamente.
fuente
Simplemente puede cambiar el propietario o simplemente usar sudo antes de ordenar así
sudo chown -R [owner]:[owner] /usr/local/lib/node_modules
( cambiar de propietario )o
Eso es.
fuente
Para linux / ubuntu si el comando
npm install -g <package_name>
Solución: instalar con permisos de root
sudo npm install <package_name> -g
fuente
Necesita el permiso de los niveles de superusuario para instalar React. En Linux / Unix, la cuenta de superusuario generalmente se denomina 'root'.
Para obtener el privilegio de superusuario, simplemente ejecute el siguiente comando en su terminal:
y luego simplemente ejecute el comando para instalar React:
Sin embargo, el equipo reactjs nos anima a usar el siguiente comando en lugar de instalar un paquete global.
fuente
create-react-app
necesitan privilegios de root para instalarse como paquetes globales; de lo contrario, no podrá instalarlo. Sin embargo, el equipo reactjs nos anima a usar el siguiente comando ennpx create-react-app app_name
lugar de instalar un paquete global.sudo chown -R $ USER / usr / local / lib / node_modules
fuente
Solo ayudó esto:
fuente
Después de una larga investigación, entendí que Mac OS no necesita nada para instalar angular cli, solo use
sudo npm install -g @angular/cli
su terminal y le pedirá que ingrese su contraseña, procederá a instalar cli. Funcionó para mi.fuente
Similar a la respuesta de POsha pero esto es lo que funcionó para mí en ubuntu 19
Desde este enlace
https://github.com/inconshreveable/ngrok/issues/429
fuente
Si está ejecutando Linux (es decir: Arch)
Por defecto, este comando instala el paquete en / usr / lib / node_modules / npm y requiere privilegios de root para hacerlo.
Para permitir instalaciones para todo el usuario
Para permitir instalaciones de paquetes globales para el usuario actual, configure la
npm_config_prefix
variable de entorno. Esto es utilizado tanto por npm como por hilo.Vuelva a iniciar sesión o fuente para actualizar los cambios.
También puede especificar el
--prefix
parámetro paranpm install
. Sin embargo, esto no se recomienda, ya que deberá agregarlo cada vez que instale un paquete global.Por lo tanto, no tiene que pedir permiso de carpeta
fuente
Pude deshacerme de este problema instalando
nvm
, luego configurando el nodo a la última versión.nvm
usandocurl
(para la última versión, vaya a nvm.sh )Después de seguir los comandos anteriores, podrá instalar react / angular en Ubuntu.
fuente
Use 'sudo npm install xyz' funcionará.
fuente
Simplemente agregue "sudo" antes del comando npm. Eso es.
fuente
He usado sudo, pero no resolvió el problema, lo solucioné cambiando el permiso de la carpeta node_modules,
Si lo desea, puede reemplazar 777 con cualquier otro código si no establece el permiso para todos los usuarios / grupos.
fuente
Para aquellos de ustedes que aún no pueden solucionar el problema después de usar las soluciones mencionadas anteriormente. Prueba esto
Eso debería hacer el truco, ¡salud!
fuente