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 от
до
заставляет его работать.
я столкнулся с этой проблемой при использовании 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