如何在仅使用IPv6的ubuntu服务器中安装节点包

时间:2017-11-01 19:23:49

标签: node.js npm ubuntu-16.04 nvm

我正在尝试在只有IPv6地址空间的Ubuntu服务器上安装typescript。

我收到的错误如下。有什么帮助吗?

:/home/dev/.nvm# npm install --global typescript
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.org/typescript failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2017-11-01T19_15_39_294Z-debug.log

这种网络连接的错误发生在许多软件包甚至github上。我通过在bitbucket中设置代码库来以稍微不同的方式安装nvm。

我尝试使用n安装npm和n来设置typescript。那失败了,我开始使用nvm作为替代。尝试安装n时的PFB日志。

    :~# sudo npm install -g n
npm ERR! Linux 4.4.0-98-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "n"
npm ERR! node v4.2.6
npm ERR! npm  v3.5.2
npm ERR! code ENETUNREACH
npm ERR! errno ENETUNREACH
npm ERR! syscall connect

npm ERR! connect ENETUNREACH ::ffff:151.101.208.162:80 - Local (:::0)
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /root/npm-debug.log

我只需要一些方法来安装它但没有运气!我坚信这是IPv6问题,并寻找解决方法。

顺便说一句,我的ubuuntu服务器是16.04.3 LTS。我已经在Ubuntu 16.10和17.04版本上运行的IPv4服务器上成功安装了它,在生产中,我已经锁定了!

3 个答案:

答案 0 :(得分:2)

我在注册表更改后工作了。可能是我在服务器上遇到的网络问题或仅IPv6问题。无论如何,注册表的变化都很完美。

sudo npm --registry http://registry.node-modules.io/ install n -g

毕竟下面的链接引导我回答。 Node-modules.io

希望这有助于将来参考! 感谢@Kalana Demel帮助我找到答案。

答案 1 :(得分:0)

似乎问题可能是代理设置尝试使用http而不是https,ipv6问题似乎也在新版本的npm中得到解决。

npm config set registry http://registry.npmjs.org/
npm cache clean

<强>更新

似乎应该在8.5.0中修复的问题仍然存在,所以对于IPV6,只有网络npm仍然无法工作,即使Node现在正在传递必要的标志,所以直到它被修复你必须找到一个解决方法。

了解详情:NodeNPM

答案 2 :(得分:0)

另一种对纱线也适用的解决方法是将已解析的ip6添加到/ etc / hosts中:

2606:4700::6810:1723 registry.yarnpkg.com
2606:4700::6810:1723 registry.npmjs.org
2606:4700::6810:ab63 yarnpkg.com

您可以使用nslookup registry.yarnpkg.comnslookup …获得ip6。