我正在尝试在我们的一个实验室服务器中设置基于节点js的应用程序,通过代理实现与Internet的连接。该框运行Ubuntu 13.10。我已经配置了网络代理,我可以通过Firefox连接到互联网。对于apt-get
,我已在/etc/apt/apt.conf
中配置了代理。这也有效。
安装节点js后,当我尝试npm install -g <package>
时,它会给我错误。我也为npm配置了代理。我的.npmrc看起来像这样:(我的代理不需要用户名/密码)。
registry = http://registry.npmjs.org/
proxy = http://<domain>:8080/
https-proxy = http://<domain>:8080
我尝试过在论坛中找到的各种选项,但似乎没有一个对我有用。 (比如将strict-ssl
设置为false
,使用--without-ssl --insecure
选项等。)
这是我目前遇到的错误:
npm http GET http://registry.npmjs.org/express
npm http GET http://registry.npmjs.org/express
npm http GET http://registry.npmjs.org/express
npm ERR! Error: connect ECONNREFUSED
npm ERR! at errnoException (net.js:904:11)
npm ERR! at Object.afterConnect [as oncomplete] (net.js:895:19)
npm ERR! { [Error: connect ECONNREFUSED]
npm ERR! code: 'ECONNREFUSED',
npm ERR! errno: 'ECONNREFUSED',
npm ERR! syscall: 'connect' }
npm ERR!
npm ERR! If you are behind a proxy, please make sure that the
npm ERR! 'proxy' config is set properly. See: 'npm help config'
npm ERR! System Linux 3.11.0-12-generic
npm ERR! command "/home/<user>/apps/node-v0.10.26-linux-x86/bin/node" "/home/<user>/apps/node-v0.10.26-linux-x86/bin/npm" "install" "-g" "express"
npm ERR! cwd /home/<user>
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! syscall connect
npm ERR! code ECONNREFUSED
npm ERR! errno ECONNREFUSED
npm ERR! stack Error: connect ECONNREFUSED
npm ERR! stack at errnoException (net.js:904:11)
npm ERR! stack at Object.afterConnect [as oncomplete] (net.js:895:19)
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/<user>/npm-debug.log
npm ERR! not ok code 0
任何想法,这里出了什么问题?我坚持这一天的事情; - (
谢谢!
答案 0 :(得分:1)
我无法解决此问题,但找到了解决办法 - 我将笔记本电脑上需要的软件包捆绑在一起,然后在实验室盒子上进行离线安装。以下是如何做到这一点:
以mongodb
节点模块为例。我把它安装在笔记本电脑上进行开发。如果打开mongodb模块的package.json
文件,则会列出依赖项以及相应的版本号。我看起来像这样:
"dependencies": {
"bson": "0.2.5",
"kerberos": "0.0.3"
},
更新package.json
文件以包含"bundledDependencies"
。 (这个位置真的不重要,只是它应该处于同一级别,作为JSON树中"dependencies"
的兄弟姐妹)。这是您需要添加的内容:
"bundledDependencies": [
"bson",
"kerberos"
],
现在,当您在包的目录(存在package.json
文件的位置)内时,运行命令npm pack
。这将为您创建一个tgz文件。就我而言,它创建了mongodb-1.3.23.tgz
。只需将此文件复制到要安装它的框中,然后运行npm install ./mongodb-1.3.23.tgz
即可。这应该会让你通过。由于所有依赖项现在捆绑在此.tgz
文件中,因此npm不会尝试连接到Internet以安装其中任何一个。
但是,我仍然想知道基于互联网的安装出了什么问题。那还是个谜!