la comprobación de actualización de npm falló

14

En realidad estaba tratando de instalar nodejs junto con npm en mi ubuntu 17.04. Descargué la versión de Linux de nodejs.org y creé un enlace flexible para node y nodejs. Al verificar la versión de nodejs, muestra la versión que instalé y estoy bien con ella.

ahora intenté hacer lo mismo para npm. Traté de crear un enlace suave para npm.

 sudo ln -sf /mnt/7A46BE1454633621/softwares/programming/frontend/nodejs/lib/node_modules/npm/bin/npm 
    /usr/bin/npm

No sé si el enlace que creé es correcto o no. pero al ejecutar el npm -vcomando veo la versión 5.0.3, que es lo que estoy tratando de instalar. se muestra la versión pero justo debajo veo algo como esto.

5.0.3
npm update check failed                 │
│           Try running with sudo or get access           │
│          to the local update config store via           │
│ sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config 
sagar limbu
fuente
¿Lo habéis sudo chown -R $USER:$(id -gn $USER) /home/sagar/.configaconsejado?
George Udosen
Si está utilizando Docker, verifique si el sistema de archivos es de solo lectura. Debe ser escribible.
Константин Ван

Respuestas:

14

Mi versión npm es 5.0.3 y tengo el mismo problema cuando uso cualquier comando npm:

mensaje de error de npm

El comando funciona bien, pero este código sigue apareciendo sin razón aparente. He actualizado de 5.0.3 a 5.2.0 con estos comandos:

sudo chown -R $USER:$(id -gn $USER) /home/sagar/.config

npm install -g npmo npm i -g npm.

Ahora npm está funcionando bien.

Arpit
fuente
Trabajó para mi. Aunque, tuve que actualizar npmcomo root con sudo npm i -g npm. NPM actualizado a 6.0.1
Denialos
3

Exactamente el mismo problema para mí, pero no parece estar relacionado con la versión (estoy usando npm 5.5.1). La fijación de los derechos ~/.confighizo el truco para mí:

sudo chown -R $USER:$(id -gn $USER) ~/.config

Supongo que esto está relacionado con algún problema con el propietario ~/.config/configstore/update-notifier-npm.json.

Anto
fuente
1

Había cambiado el dueño de

~/configstore

y

~/configstore/update-notifier-npm.json

a $ USER: $ USER.

Supongo que correr npmcon sudo creó ese archivo. En mi sistema al menos encontramos esto:

$ env | grep  -e HOME= -e "^USER="
USER=craig
HOME=/home/craig

$ sudo env | grep  -e HOME= -e "^USER="
HOME=/home/craig
USER=root

Entonces, si sudo npmestá codificado para crear, ~/configstore/update-notifier-npm.jsonlo hará en el directorio de inicio del usuario ordinario. Eso crea un problema cuando se ejecuta más tarde npmsin el sudocual también quiere leer y tal vez escribir ~/configstore/update-notifier-npm.json. Por alguna razón, los permisos son 600 en ambos.

Tenga cuidado cuando chowny chmod-ing todo bajo ~/.config, no puede ser algo sensible allí.

Craig Hicks
fuente
1

Por favor, no use el chowncomando proporcionado en el mensaje de error. La ruta ~/.configes utilizada por muchas aplicaciones y es una ruta estándar para almacenar información de configuración. No se recomienda cambiar los derechos de grupo allí. Mejor solo cambie la ruta requerida como:

sudo chown -R $USER ~/.config/configstore

Caso especial: Docker

Un caso común para obtener este error es usar algo como Docker (especialmente montando su propia casa). Considere configurar las variables de entorno como NPM_CONFIG_CACHEy XDG_CONFIG_HOME. El primero establece su ruta de caché y el último está configurando su ruta de configstore. No usaría la .configcarpeta en el directorio de inicio para evitar problemas con la propiedad del archivo. Pero el uso de caché ayuda a servicios como NPM a ahorrar ancho de banda. Intente evitar descargas excesivas en cada compilación y use algo como esto (pero verifique que el destino /tmptenga suficiente espacio en disco):

test -d /tmp/$USER/cache || mkdir -p /tmp/$USER/cache
docker run \
  -v /tmp/$USER:/tmp/$USER \
  -e "NPM_CONFIG_CACHE=/tmp/$USER/cache/npm" \
  -e "XDG_CONFIG_HOME=/tmp/$USER/cache/" \
  ...
Trendfischer
fuente
0

Bueno, lo primero que podemos hacer para resolver estos problemas es

  1. Asegúrese de haber marcado una opción en la configuración de la carpeta para ver los archivos ocultos.
  2. Haga clic derecho en el archivo .config y seleccione propiedades y luego haga clic en la pestaña de permisos.
  3. En permisos de carpeta y permisos de archivo para grupo | propietario | otros marcan las opciones de lectura, escritura y ejecución.
  4. En la parte inferior, haga clic en Aplicar permisos a los archivos adjuntos.
  5. Ahora intente volver a ejecutar los mismos comandos npm donde estaba viendo esos mensajes y ahora debería desaparecer para siempre.

Si esto te ayudó a saber qué hacer.

Nota: El mismo procedimiento también se puede aplicar para configstore solo dentro de la carpeta .config.

Raju
fuente