controllo aggiornamento npm non riuscito


14

stavo effettivamente cercando di installare nodejs insieme a npm sul mio Ubuntu 17.04. ho scaricato la versione per Linux da nodejs.org e creato un collegamento software per node e nodejs. controllando la versione di nodejs mostra la versione che ho installato e sto bene.

ora ho provato a fare lo stesso per npm. ho provato a creare un collegamento soft per npm.

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

non so che il link che ho creato sia corretto o meno. ma eseguendo il npm -vcomando vedo la versione 5.0.3 che è ciò che sto cercando di installare. la versione è mostrata ma proprio sotto di essa vedo qualcosa di simile.

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 

Hai sudo chown -R $USER:$(id -gn $USER) /home/sagar/.configconsigliato?
George Udosen,

Se stai usando Docker, ricontrolla se il filesystem è di sola lettura. Deve essere scrivibile.
Константин Ван

Risposte:


14

La mia versione di npm è 5.0.3 e ho lo stesso problema quando uso qualsiasi comando npm:

messaggio di errore npm

Il comando funziona correttamente ma questo codice continua a essere visualizzato senza motivo apparente. Ho aggiornato dalla 5.0.3 alla 5.2.0 con questi comandi:

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

npm install -g npmo npm i -g npm.

Ora npm funziona bene.


Ha funzionato per me. Anche se, ho dovuto aggiornare npmcome root con sudo npm i -g npm. Aggiornato npm a 6.0.1
Denialos

3

Lo stesso problema per me, ma non sembra correlato alla versione (sto usando npm 5.5.1). Risolvere i diritti su mi ha ~/.configfatto il trucco:

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

Immagino che questo sia correlato a qualche problema con il proprietario ~/.config/configstore/update-notifier-npm.json.


1

Ho cambiato proprietario

~/configstore

e

~/configstore/update-notifier-npm.json

a $ USER: $ USER.

La mia ipotesi è che correre npmcon sudo abbia creato quel file. Sul mio sistema almeno troviamo questo:

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

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

Quindi, se sudo npmè codificato per creare ~/configstore/update-notifier-npm.json, lo farà nella home directory dell'utente ordinario. Ciò crea un problema durante la successiva esecuzione npmsenza il sudoquale vuole anche leggere e forse scrivere ~/configstore/update-notifier-npm.json. Per qualche motivo le autorizzazioni sono 600 su entrambi.

Sii cauto quando chowne chmod-ing tutto sotto ~/.config, ci potrebbe essere qualcosa di sensibile lì.


1

Per favore, non usare il chowncomando fornito nel messaggio di errore. Il percorso ~/.configè utilizzato da molte applicazioni ed è un percorso standard per la memorizzazione delle informazioni di configurazione. Non è consigliabile modificare i diritti di gruppo lì. Meglio cambiare solo il percorso richiesto come:

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

Caso speciale: Docker

Un caso comune per ottenere questo errore è usare qualcosa come Docker (specialmente montando la propria casa). Valuta di impostare le variabili di ambiente come NPM_CONFIG_CACHEe XDG_CONFIG_HOME. Il primo imposta il percorso della cache e l'ultimo sta impostando il percorso della configurazione. Non userei la .configcartella nella home directory per evitare problemi con la proprietà dei file. Ma l'uso della cache aiuta servizi come NPM a salvare la larghezza di banda. Cerca di evitare download eccessivi su ogni build e usa qualcosa del genere (ma controlla che il target /tmpabbia spazio su disco sufficiente):

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/" \
  ...

0

Bene, la prima cosa che possiamo fare per risolvere questo problema è

  1. Assicurati di aver spuntato un'opzione nelle impostazioni della cartella per vedere i file nascosti.
  2. Fare clic con il pulsante destro del mouse sul file .config e selezionare Proprietà, quindi fare clic sulla scheda Autorizzazioni.
  3. Nelle autorizzazioni per le cartelle e per i file per il gruppo | proprietario | altri spuntano le opzioni di lettura, scrittura ed esecuzione.
  4. Nella parte inferiore fare clic su Applica autorizzazioni ai file allegati.
  5. Ora prova a rieseguire gli stessi comandi npm in cui stavi vedendo quei messaggi e ora dovrebbe essere andato per sempre.

Se questo ti ha aiutato a sapere cosa fare.

Nota: la stessa procedura può essere applicata anche per il solo configstore nella cartella .config.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.