Подтвердить что ты не робот

Команда nvm ls-remote выводит сообщение "N/A"

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Изменить: найдено более легкое исправление

Вы можете экспортировать не HTTPS-версию зеркала, которое она использует, чтобы захватить материал:

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

Затем nvm работает

Предварительная настройка

С той же проблемой только сейчас.

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

Я предполагаю, что вы тоже работаете в 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.

Ответ 2

Скорее всего, это вызвано тем, что curl не может использовать сертификаты для URL-адресов https (проверьте с помощью curl $NVM_NODEJS_ORG_MIRROR). Вместо использования http URL в качестве обходного пути, IMO гораздо лучше исправить curl.

Предполагая, что у вас установлен пакет ca-certificates, добавьте следующую строку в ваш .bashrc (source1, source2):

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

Ответ 3

Кажется, что//отсутствует в конце URL, поэтому сообщение 301 постоянно перемещается. Так что изменив ссылку в nvm.sh из

http://nodejs.org/dist

в

http://nodejs.org/dist/

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

Ответ 4

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

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

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

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

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

Ответ 5

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

sudo nano hosts

изменено 127.0.0.1 localhost

в

0.0.0.0 localhost

Надеюсь, это поможет любому, у кого есть такая же проблема. Спасибо @Truong Nguyen

Ответ 6

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

Ответ 7

Для меня это будет работать

nvm alias default node указывает "по умолчанию" на последней установленной версии узла (8.11.1).

Ответ 8

Это работает для меня в моем Linux:

экспортировать NVM_NODEJS_ORG_MIRROR =http://nodejs.org/dist