échec de la vérification de la mise à jour npm

14

j'essayais en fait d'installer nodejs avec npm sur mon ubuntu 17.04. j'ai téléchargé la version linux de nodejs.org et créé un lien logiciel pour node et nodejs. lors de la vérification de la version de nodejs, il montre la version que j'ai installée et je vais bien avec.

maintenant j'ai essayé de faire la même chose pour npm. j'ai essayé de créer un lien logiciel pour npm.

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

Je ne sais pas si le lien que j'ai créé est correct ou non. mais lors de l'exécution de la npm -vcommande, je vois la version 5.0.3 qui est ce que j'essaie d'installer. la version est montrée mais juste en dessous je vois quelque chose comme ça.

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
la source
L'avez-vous sudo chown -R $USER:$(id -gn $USER) /home/sagar/.configconseillé?
George Udosen
Si vous utilisez Docker, vérifiez si le système de fichiers est en lecture seule. Il doit être accessible en écriture.
Константин Ван

Réponses:

14

Ma version npm est 5.0.3 et j'ai le même problème lorsque j'utilise une commande npm:

message d'erreur npm

La commande fonctionne bien mais ce code continue de s'afficher sans raison apparente. J'ai mis à jour de 5.0.3 à 5.2.0 avec ces commandes:

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

npm install -g npmou npm i -g npm.

Maintenant, npm fonctionne bien.

Arpit
la source
A travaillé pour moi. Cependant, j'ai dû mettre à jour en npmtant que root avec sudo npm i -g npm. Mise à jour npm vers 6.0.1
Denialos
3

Exactement le même problème pour moi, mais ne semble pas lié à la version (j'utilise npm 5.5.1). Fixer les droits sur ~/.configfait l'affaire pour moi:

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

Je suppose que cela est lié à un problème de propriétaire avec ~/.config/configstore/update-notifier-npm.json.

Anto
la source
1

Je devais changer le propriétaire de

~/configstore

et

~/configstore/update-notifier-npm.json

à $ USER: $ USER.

Je suppose que l'exécution npmavec sudo a créé ce fichier. Sur mon système au moins, nous trouvons ceci:

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

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

Donc, si sudo npmest codé pour créer, ~/configstore/update-notifier-npm.jsonil va le faire dans le répertoire personnel de l'utilisateur ordinaire. Cela crée un problème lors de l'exécution ultérieure npmsans sudoqui veut également lire et peut-être écrire ~/configstore/update-notifier-npm.json. Pour une raison quelconque, les autorisations sont de 600 sur les deux.

Soyez prudent lorsque vous chownet chmod-ment tout sous ~/.config, il pourrait y avoir quelque chose sensible.

Craig Hicks
la source
1

Veuillez ne pas utiliser la chowncommande fournie dans le message d'erreur. Le chemin ~/.configest utilisé par de nombreuses applications et est un chemin standard pour le stockage des informations de configuration. Il n'est pas recommandé d'y modifier les droits du groupe. Mieux vaut seulement changer le chemin requis comme:

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

Cas particulier: Docker

Un cas courant pour obtenir cette erreur est d'utiliser quelque chose comme Docker (en particulier en montant votre propre maison). Pensez à définir les variables d'environnement comme NPM_CONFIG_CACHEet XDG_CONFIG_HOME. Le premier définit votre chemin de cache et le dernier définit votre chemin de configuration. Je n'utiliserais pas le .configdossier dans le répertoire personnel pour éviter les problèmes de propriété des fichiers. Mais l'utilisation du cache aide des services comme NPM à économiser la bande passante. Essayez d'éviter les téléchargements excessifs sur chaque build et utilisez quelque chose comme ça (mais vérifiez que la cible comme /tmpa suffisamment d'espace disque):

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
la source
0

Eh bien, la première chose que nous pouvons faire pour résoudre ce problème est

  1. Assurez-vous d'avoir coché une option dans les paramètres du dossier pour voir les fichiers cachés.
  2. Cliquez avec le bouton droit sur le fichier .config et sélectionnez les propriétés, puis cliquez sur l'onglet autorisations.
  3. Dans les autorisations de dossier et les autorisations de fichier pour le groupe | propriétaire | d'autres cochent les options de lecture, d'écriture et d'exécution.
  4. En bas, cliquez sur Appliquer les autorisations aux fichiers joints.
  5. Essayez maintenant de réexécuter les mêmes commandes npm que celles où vous voyez ces messages et maintenant elles devraient disparaître pour toujours.

Si cela vous a aidé à savoir quoi faire.

Remarque: La même procédure peut également être appliquée pour configstore seul dans le dossier .config.

Raju
la source