2015-01-26 182 views
2

我无法安装Browserify(或任何东西)全球。我可以在没有问题的情况下在全球范围内安装。NPM无法安装browserify全球

背景:我在代理服务器后面的公司网络上运行CentOS 6.6。我使用“yum”作为root来安装Node.js。

$ sudo yum -y install nodejs 

和NPM(未用安装的NodeJS由于某种原因):

$ sudo yum -y install nodejs npm 

此安装的Node.js和NPM的目录:

$ which node 
/usr/bin/node 

$ which npm 
/usr/bin/npm 

,并把/ usr/lib/node_modules下的“node_modules”。

就像我说的,我在代理后面,所以我将“proxy”和“https-proxy”配置属性设置为正确的值。

当我试图安装browserify(上their site指定的)

$ npm install -g browserify 

我收到了一条错误

...npm ERR! stack Error: EACCES, mkdir '/usr/lib/node_modules/browserify'... 

所以我 “chowned” 在/ usr/lib中/ node_modules目录给我访问node_modules中的mkdirs:

$ sudo chown -R $USER /usr/lib/node_modules 

Th E错误: 现在,当我尝试安装browserify全球我得到一个不同的错误:

npm ERR! Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js' 
npm ERR! { [Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '../lib/node_modules/browserify/bin/cmd.js' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Linux 2.6.32-431.el6.x86_64 
npm ERR! command "node" "/usr/bin/npm" "install" "-g" "browserify" 
npm ERR! cwd /usr/lib/node_modules 
npm ERR! node -v v0.10.33 
npm ERR! npm -v 1.3.6 
npm ERR! path ../lib/node_modules/browserify/bin/cmd.js 
npm ERR! code EACCES 
npm ERR! errno 3 
npm ERR! stack Error: EACCES, symlink '../lib/node_modules/browserify/bin/cmd.js' 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /usr/lib/node_modules/npm-debug.log 
npm ERR! not ok code 0 

有什么特别的,我需要改变,以允许NPM创建符号链接?

而且,我试图运行安装为根,但它只是坐在那里,直到最终超时:

...npm ERR! network tunneling socket could not be established, cause=read ECONNRESET... 
+0

你不是'sudo npm install -g browserify'吗? – Tony 2015-01-26 21:02:47

+0

请阅读我的整个问题。 – 2015-01-26 21:14:44

+0

我的不好,我没有注意到你已经处理了代理问题,我会删除我的评论。 – 2015-01-26 21:16:25

回答

0

我终于可以使用npm全局安装模块。

我做了什么:

我不得不使用sudo并设置代理/ HTTPS代理的几个地方。我遵循这个博客的建议:http://wil.boayue.com/blog/2013/06/14/using-npm-behind-a-proxy/

我在〜/中设置了下列变量。bashrc中,并远销他们:

  • HTTP_PROXY
  • https_proxy
  • npm_config_proxy
  • npm_config_https_proxy

我还添加了他们使用visudo命令来env_keep(所以他们会提供给须藤)。

我然后设置代理和NPM HTTPS代理配置设置使用:

$ npm config set proxy http://<proxy>:<port> 
$ npm config set proxy http://<proxy>:<port> 

我不知道,如果这一切是必要的,但它为我工作。此外,有一次,我意识到我有不正确的代理,不得不在几个地方改变它(所以一定要仔细检查)。

0

我最近遇到此问题。全局模块应该以root用户身份安装(sudo)。如果我的进程失败(类似于你的进程),以超级用户身份运行时出现超时。这是由于NPM使用“git”协议。要安装这些软件包,我必须将以下内容运行到我的git配置中。

git config --global url."https://".insteadOf git:// 

这解决了我的问题。

+0

我只是试过,无济于事。我使用的是git 1.7.1版本。我仍然得到“npm ERR!网络隧道套接字无法建立,导致=读取ECONNRESET”错误。 – 2015-01-26 21:29:34

+0

你可以使用git clone – 2015-01-26 21:49:33

+0

是的,我只是能够从github项目中做一个git克隆。一切签出没有问题。 – 2015-01-26 21:59:15