NVM LS-удаленная команда приводит к "N/A"

Я пытаюсь установить узел с nvm, но когда я набираю любую версию, она недоступна. Когда я набираю nvm ls-remote Я просто получаю "N / A".

Я могу получить доступ к Интернету, поэтому я не могу понять, что может происходить.

6 ответов


обновление с комментарием от LJHarb, который поддерживает nvm.sh

LJHarb предполагает, что типичной проблемой, вызывающей это, является то, что"центры сертификации SSL, установленные в вашей системе, устарели". Проверка этого и попытка исправить это будет лучшим первым шагом.

в том случае, когда вы верите там is проблема на nvm.sh сторона, LJHarb просит, чтобы пользователи подали ошибку наnvm.sh проблема следопыт!--17-->.

Не стесняйтесь, чтобы увидеть исходный текст в разделе комментариев.

кроме того, я хотел бы отметить, что приведенные ниже решения предназначены как обходные пути только для временного использования, если вы действительно в привязке. Постоянное изменение экспортированного зеркала или nvm.sh сам скрипт не рекомендуется.

редактировать: найдено легче исправить

вы можете экспортировать не https-версию зеркала, которое он использует для захвата вещи:

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

тогда nvm работает

предварительного редактирования

только что была такая же проблема.

похоже, по умолчанию он пытается использовать curl, если он доступен в вашей системе.

Я предполагаю, что вы также на linux, поэтому попробуйте запустить curl $NVM_NODEJS_ORG_MIRROR и посмотрите, получите ли вы ту же ошибку, что и я:

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

возможно, какой-то сертификат истек или иным образом неправильно настроен (или кто-то делает что-то неприятное), пока он не будет исправлен, если вы не против обойти проблему безопасности, вы можете найти nvm.sh файл (должен быть в ~/.nvm/nvm.sh если вы следовали за информацией об установке), и вы можете добавить -k в строке 17 после завитка, так что это выглядит так:

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

Не забудьте перезагрузить оболочку, а затем попробуйте nvm ls-remote. Предполагая, что исправление сработало, теперь вы сможете использовать nvm.


скорее всего, это вызвано тем, что curl не может использовать сертификаты для HTTPS-адресов (проверьте с помощью curl $NVM_NODEJS_ORG_MIRROR). Вместо того, чтобы использовать HTTP url в качестве обходного пути, ИМО намного лучше исправить curl.

если у вас есть ca-certificates пакет установлен, добавьте следующую строку в свой .bashrc (файлы source1, файл source2):

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

кажется, что " / " отсутствует в конце url-адреса, поэтому 301 постоянно перемещенное сообщение. Итак, изменение ссылки в nvm.sh от

http://nodejs.org/dist

до

http://nodejs.org/dist/

заставляет его работать.


я столкнулся с этой проблемой при использовании Vagrant 1.7.1 под управлением Ubuntu 14.04 box в Virtual Box 4.3.30 в Windows 7. Я пробовал предложения выше, и ничего не сработало для меня. Я нашел этот пост над здесь это было связано с ошибкой Curl, которую я получал при попытке запустить:curl $NVM_NODEJS_ORG_MIRROR ошибка: curl: (7) Couldn't connect to server я смог следовать предложению на этом посту, а затем, как только я перезапустил свою бродячую коробку с vagrant reload я смог бежать nvm ls-remote и посмотреть список версий узла и установить. Вот что я сделал на коробке бродяги:cd /etc/

sudo nano hosts

изменено 127.0.0.1 localhost

в:

0.0.0.0 localhost

надеюсь, это поможет любому с той же проблемой. Спасибо@ Нгуен Чыонг


у меня была такая же проблема, но ни одно из других решений не помогло. curl -v $NVM_NODEJS_ORG_MIRROR/ показал TLS 1.2 и никаких проблем с сертификатами. Когда я пытался which curl, оказывается, у меня был каталог anaconda3/bin в моем пути, который имеет свою собственную версию curl (не знаю, зачем им это нужно). Как только я определил свой путь,nvm ls-remote работала просто отлично. Надеюсь, это поможет спасти кого-то еще от разочарования.


Если вы используете NVM behide прокси, вам нужно установить конфигурацию прокси для curl

изменить или создать файл ~/.curlrc и добавьте эту строку с вашим прокси

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

Если ваш прокси не нуждается в пользователе и пароле, вы можете использовать его:

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