2015-01-26 181 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