Überprüfung der npm-Aktualisierung fehlgeschlagen

14

Ich habe tatsächlich versucht, NodeJS zusammen mit Npm auf meinem Ubuntu 17.04 zu installieren. Ich habe die Linux-Version von nodejs.org heruntergeladen und einen Softlink für node und nodejs erstellt. Beim Überprüfen der Version von NodeJS wird die Version angezeigt, die ich installiert habe, und ich bin damit einverstanden.

Jetzt habe ich versucht, dasselbe für npm zu tun. Ich habe versucht, einen Softlink für npm zu erstellen.

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

Ich weiß nicht, ob der von mir erstellte Link korrekt ist oder nicht. Aber beim Ausführen des npm -vBefehls sehe ich die Version 5.0.3, die ich zu installieren versuche. Die Version wird angezeigt, aber direkt darunter sehe ich so etwas.

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
quelle
Hast du sudo chown -R $USER:$(id -gn $USER) /home/sagar/.configwie empfohlen?
George Udosen
Wenn Sie Docker verwenden, überprüfen Sie, ob das Dateisystem schreibgeschützt ist. Es muss beschreibbar sein.
Константин Ван

Antworten:

14

Meine npm-Version ist 5.0.3 und ich habe das gleiche Problem, wenn ich einen npm-Befehl verwende:

npm Fehlermeldung

Der Befehl funktioniert einwandfrei, aber dieser Code wird ohne ersichtlichen Grund weiterhin angezeigt. Ich habe von 5.0.3 auf 5.2.0 mit diesen Befehlen aktualisiert:

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

npm install -g npmoder npm i -g npm.

Jetzt funktioniert npm einwandfrei.

Arpit
quelle
Hat für mich gearbeitet. Allerdings musste ich npmals root mit updaten sudo npm i -g npm. Aktualisiert npm auf 6.0.1
Denialos
3

Genau das gleiche Problem für mich, scheint aber nicht mit der Version zu tun zu haben (ich verwende npm 5.5.1). Das Reparieren der Rechte an ~/.configmachte den Trick für mich:

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

Ich vermute, das hängt mit einem Besitzerproblem zusammen ~/.config/configstore/update-notifier-npm.json.

Anto
quelle
1

Ich hatte den Besitzer von gewechselt

~/configstore

und

~/configstore/update-notifier-npm.json

zu $ USER: $ USER.

Ich vermute, dass npmsudo diese Datei erstellt hat. Zumindest auf meinem System finden wir Folgendes:

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

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

Wenn sudo npmes also zum Erstellen codiert ist, wird ~/configstore/update-notifier-npm.jsones im Home-Verzeichnis des normalen Benutzers ausgeführt. Das schafft ein Problem beim späteren Laufen, npmohne sudodas man auch lesen und vielleicht schreiben will ~/configstore/update-notifier-npm.json. Aus irgendeinem Grund sind die Berechtigungen für beide 600.

Seien Sie vorsichtig , wenn chownund chmodalles unter -ing ~/.config, könnte es etwas empfindlich da sein.

Craig Hicks
quelle
1

Bitte verwenden Sie nicht denchown in der Fehlermeldung angegebenen Befehl . Der Pfad ~/.configwird von vielen Anwendungen verwendet und ist ein Standardpfad zum Speichern von Konfigurationsinformationen. Es wird nicht empfohlen, die Gruppenrechte dort zu ändern. Besser nur den gewünschten Pfad ändern wie:

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

Sonderfall: Docker

Ein häufiger Fall, um diesen Fehler zu erhalten, ist die Verwendung von Docker (insbesondere durch die Installation Ihres eigenen Hauses). Stellen Sie die Umgebungsvariablen wie NPM_CONFIG_CACHEund ein XDG_CONFIG_HOME. Der erste legt Ihren Cache-Pfad fest und der letzte legt Ihren Konfigurationsspeicherpfad fest. Ich würde den .configOrdner im Ausgangsverzeichnis nicht verwenden , um Probleme mit dem Dateieigentum zu vermeiden. Die Verwendung von Cache hilft Diensten wie NPM jedoch, Bandbreite zu sparen. Versuchen Sie, übermäßige Downloads bei jedem Build zu vermeiden, und verwenden Sie so etwas (stellen Sie jedoch sicher, dass das Ziel /tmpüber ausreichend Speicherplatz verfügt):

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
quelle
0

Nun, das erste, was wir tun können, um dieses Problem zu lösen, ist

  1. Stellen Sie sicher, dass Sie eine Option in der Ordnereinstellung aktiviert haben, um versteckte Dateien anzuzeigen.
  2. Klicken Sie mit der rechten Maustaste auf die CONFIG-Datei, wählen Sie Eigenschaften aus und klicken Sie dann auf die Registerkarte Berechtigungen.
  3. In Ordnerberechtigungen und Dateiberechtigungen für Gruppe | Besitzer | andere kreuzen die Lese-, Schreib- und Ausführungsoptionen an.
  4. Klicken Sie unten auf Berechtigungen auf angehängte Dateien anwenden.
  5. Versuchen Sie nun, dieselben npm-Befehle erneut auszuführen, bei denen Sie diese Nachrichten gesehen haben, und jetzt sollte sie für immer verschwunden sein.

Wenn dies Ihnen geholfen hat, zu wissen, was zu tun ist.

Hinweis: Das gleiche Verfahren kann auch nur für configstore im Ordner .config angewendet werden.

Raju
quelle