2014-12-22 56 views
1

不知道這是因爲我連接到中國網(不是互聯網,但防火牆中國提供了一個互聯網抱歉的藉口)或因爲npm有問題,但我似乎無法安裝與npm的事情。npm安裝掛在kerberos或bson

試圖

獲取我

npm info install [email protected] 

> [email protected] install /usr/local/lib/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos 
> (node-gyp rebuild 2> builderror.log) || (exit 0) 

有時它經歷沒有更新的所有很長一段時間後(使用--verbose選項),但是到達

npm info postinstall [email protected] 

> [email protected] install /usr/local/lib/node_modules/mongoose/node_modules/mongodb/node_modules/bson 
> (node-gyp rebuild 2> builderror.log) || (exit 0) 

也許我太急於在2小時後殺死這個過程,但它看起來像是沒有告訴我,因爲當它成功時,整個過程不到20分鐘。但最後一次工作大約在2周前。

試圖對具有貓鼬依賴性的包執行npm安裝,但永遠不能滿足該依賴性。我的同事建議我做npm install來獲取所有更新的軟件包(包括他們最近的工作),但每當有人告訴我,我正在查看上述兩個消息中的一個,第二天也是如此。

過夜會嘗試npm install -g mongoose,並希望npm鏈接可以正常工作(而不是嘗試下載並安裝一些只會持續數小時的內容)。

在中國的其他人發現它幾乎不可能使用NPM(取決於防火牆的心情)?

回答

1

它看起來更像是你的編譯比你的安裝需要很長時間。 (node-gyp調用C++編譯器構建本機代碼插件)

這可能是因爲缺少構建本機加載項所需的某些部分(庫,編譯器)。但是,我無法幫助您找出問題的具體含義:

您是從源代碼還是從軟件包安裝節點? 是python還是安裝了C/C++編譯器? 您可以使用兩個-d標誌運行npm以增加詳細程度(npm -dd install kerberos)並將生成的npm-debug.log發佈到https://gist.github.com以幫助進行調試嗎?

+0

謝謝您的回覆。我將它安裝在Mac上,當它成功時,它會在5分鐘內完成。當它不是它只是掛起,並沒有做任何事情。它留在那裏沒有任何輸出的最長記錄是2小時。由於連接不良,我懷疑沒有出現異常。不知道編譯期間是否需要網絡連接。 – HMR

+0

在編譯之前,需要網絡連接來安裝庫。 您可以通過運行 ''($ dirname'which npm')/../ lib/node_modules/npm/node_modules/.bin/node-gyp install'來確保node-gyp具有最新文件。 '' –

4

我面臨同樣的問題,並看看builderror.log文件。該文件位於相應的節點模塊文件夾中。你的情況是要麼

/usr/local/lib/node_modules/mongoose/node_modules/mongodb/node_modules/bson/builderror.log

在/ usr/local/lib目錄/ node_modules /貓鼬/ node_modules/MongoDB的/ node_modules/Kerberos的/ builderror.log

如果用-dd可以SE NPM啓動e此文件中gyp的狀態,也可能會發現一些權限問題或類似問題。

這是我做過什麼來解決這個問題:

  1. 刪除所有已安裝的頭文件與rm ~/.node-gyp/
  2. 安裝與npm install -g node-gyp
  3. 呼叫節點GYP全球節點GYP安裝頭文件node-gyp install(爲當前節點版本安裝標題)。
  4. 刪除節點GYP再次npm uninstall -g node-gyp(可選)

此後簡單npm install爲我的項目,在短短几秒鐘跑了通過。

+0

這沒有奏效。 – DrCord