web-dev-qa-db-fra.com

La commande nvm ls-remote donne "N / A"

J'essaie d'installer Node avec nvm, mais quand je tape une version, elle n'est pas disponible. Quand je tape nvm ls-remote Je viens de recevoir "N/A".

Je peux accéder à Internet, donc je ne peux pas comprendre ce qui pourrait se passer.

44
eComEvo

Mise à jour avec commentaire de LJHarb, qui maintient nvm.sh

LJHarb suggère qu'un problème typique à l'origine de cela est que "les autorités de certification SSL installées dans votre système sont obsolètes". Vérifier cela et essayer de résoudre ce problème serait une meilleure première étape.

Dans le cas où vous croyez qu'il y a c'est un problème du côté nvm.sh, LJHarb demande aux utilisateurs de déposer un bogue sur l'outil de suivi des problèmes de nvm.sh .

N'hésitez pas à voir le texte original dans la section commentaires.

De plus, je voudrais souligner que les solutions ci-dessous sont conçues comme des solutions de contournement à utiliser temporairement uniquement si vous êtes vraiment dans une impasse. La modification permanente du miroir exporté ou du script nvm.sh lui-même n'est pas recommandée.

Modifier : correction plus facile trouvée

Vous pouvez exporter la version non https du miroir qu'il utilise pour récupérer le contenu:

export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist

Ensuite, NVM fonctionne

Pré-édition

J'ai eu le même problème tout à l'heure.

Il semble que par défaut, il essaie d'utiliser curl s'il est disponible sur votre système.

Je suppose que vous êtes également sur Linux, alors essayez d'exécuter curl $NVM_NODEJS_ORG_MIRROR et voyez si vous obtenez la même erreur que moi:

curl: (77) error setting certificate verify locations:
  CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none

Peut-être que certains certificats ont expiré ou sont mal configurés (ou que quelqu'un fait quelque chose de méchant), jusqu'à ce qu'il soit corrigé, si cela ne vous dérange pas de contourner le problème de sécurité, vous pouvez trouver le fichier nvm.sh (devrait être à ~/.nvm/nvm.sh si vous avez suivi les informations d'installation), et vous pouvez ajouter un -k à la ligne 17 après la boucle, il ressemble à ceci:

-- nvm.sh --
nvm_download() {
16  if nvm_has "curl"; then
17    curl -k $*
18  Elif nvm_has "wget"; then
19    # Emulate curl with wget
...
}

N'oubliez pas de redémarrer votre Shell, puis essayez nvm ls-remote. En supposant que le correctif a fonctionné, vous devriez pouvoir utiliser nvm maintenant.

79
Jeffrey Martinez

Cela est probablement dû au fait que curl ne peut pas utiliser de certificats pour les URL https (vérifiez avec curl $NVM_NODEJS_ORG_MIRROR). Au lieu d'utiliser l'URL http comme solution de contournement, il est préférable pour l'OMI de corriger la boucle.

En supposant que vous ayez le ca-certificates package installé, ajoutez la ligne suivante à votre .bashrc ( source1 , source2 ):

export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
15
Gerhard Burger

Il semble que le '/' manque à la fin de l'URL, c'est pourquoi le message 301 a été déplacé de manière permanente. Donc, changer le lien dans nvm.sh de

http://nodejs.org/dist

à

http://nodejs.org/dist/

le fait fonctionner.

8
holdfenytolvaj

Si vous utilisez nvm derrière un proxy, vous devez définir la configuration du proxy sur curl

éditez ou créez le fichier ~/.curlrc et ajoutez cette ligne avec votre proxy

echo 'proxy=http://<proxy-user>:<proxy-pass>@<proxy-url>:<proxy-port>' >> ~/.curlrc

si votre proxy n'a pas besoin d'un utilisateur et d'un mot de passe, vous pouvez l'utiliser:

echo 'proxy=http:<proxy-url>:<proxy-port>' >> ~/.curlrc
1
Clairton Luz

J'ai eu ce même problème, mais aucune des autres solutions n'a aidé. curl -v $NVM_NODEJS_ORG_MIRROR/ a montré TLS 1.2 et aucun problème avec les certificats. Quand j'ai essayé which curl, il s'avère que j'avais un répertoire anaconda3/bin dans mon PATH, qui a sa propre version de curl (je ne sais pas pourquoi ils en ont besoin). Une fois que j'ai fixé mon chemin, nvm ls-remote a très bien fonctionné. J'espère que cela aidera à sauver quelqu'un d'autre de la frustration.

0
Matt Olsen

Je rencontrais ce problème lors de l'utilisation de Vagrant 1.7.1 exécutant une boîte Ubuntu 14.04 sous Virtual Box 4.3.30 sous Windows 7. J'ai essayé les suggestions ci-dessus et rien n'a fonctionné pour moi. J'ai trouvé ce message sur ici qui était lié à l'erreur Curl que j'obtenais en essayant d'exécuter: curl $NVM_NODEJS_ORG_MIRROR L'erreur était: curl: (7) Couldn't connect to server J'ai pu suivre une suggestion sur ce post, puis une fois que j'ai redémarré ma boîte Vagrant avec un vagrant reload j'ai pu exécuter nvm ls-remote et voir une liste des versions de node et installer. Voici ce que j'ai fait sur la boîte vagabonde: cd /etc/

Sudo nano hosts

modifié 127.0.0.1 localhost

à:

0.0.0.0 localhost

J'espère que cela aide toute personne ayant le même problème. Merci @ Truong Nguyen

0
seamonkey

Pour moi, cela fonctionnera

nvm alias default node pointe "par défaut" sur la dernière version installée Node version (8.11.1).

0
Anil Yadav