2012-11-12 258 views
2

所以我是一個漂亮的被寵壞了的rubyist,並且基本上不需要使用sudo安裝任何東西。我已經安裝了node.js和npm(使用Mac 64位.pkg授予,這可以讓我知道我的系統上有什麼),並且它們工作正常。現在如何安裝jasmine-node(理想情況下不使用「sudo」)?

,執行以下操作:「請重試運行此命令,作爲根/管理員」 npm install jasmine-node -g

不工作,說:我走的意思sudo npm install jasmine-node -g

做:npm install jasmine-node不是全局)工作正常,但正確不設置我的路,不從命令行運行等

如何應該我安裝jasmine-node?cd/usr/local/bin並安裝它(沒有'-g'選項)嗎?使用自制軟件?或者使用我上面列出的sudo ...命令?

謝謝。

/更新:如上所述,我使用通用安裝程序在我的Lion OS X Mac(64位)上安裝了node.js & npm,這裏是我在/ usr/local/bin中的node/npm列表,情況下他們的幫助:

-rwxr-xr-x 1 24561 wheel  355 Apr 11 2012 /usr/local/bin/node-waf 
-rwxr-xr-x 1 24561 wheel 18930304 Oct 25 14:07 /usr/local/bin/node 
lrwxr-xr-x 1 root admin  38 Nov 12 10:00 /usr/local/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js 

另外,我發現this answer,這是另外一個選擇(除了三個我上面提出的)。

請讓我知道哪種方法是推薦的(同樣,最好不使用'sudo'是我的首選)。

/END UPDATE

以下是與-g(全局)的回報(不使用sudo)做這件事:

npm http GET https://registry.npmjs.org/jasmine-node 
npm http 200 https://registry.npmjs.org/jasmine-node 
npm http GET https://registry.npmjs.org/jasmine-node/-/jasmine-node-1.0.26.tgz 
npm http 200 https://registry.npmjs.org/jasmine-node/-/jasmine-node-1.0.26.tgz 
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node' 
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '/usr/local/lib/node_modules/jasmine-node', 
npm ERR! fstream_type: 'Directory', 
npm ERR! fstream_path: '/usr/local/lib/node_modules/jasmine-node', 
npm ERR! fstream_class: 'DirWriter', 
npm ERR! fstream_stack: 
npm ERR! [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)', 
npm ERR!  '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53', 
npm ERR!  'Object.oncomplete (fs.js:297:15)' ] } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Darwin 11.4.2 
npm ERR! command "node" "/usr/local/bin/npm" "install" "jasmine-node" "-g" 
npm ERR! cwd /Users/brad/play/troles 
npm ERR! node -v v0.8.14 
npm ERR! npm -v 1.1.65 
npm ERR! path /usr/local/lib/node_modules/jasmine-node 
npm ERR! fstream_path /usr/local/lib/node_modules/jasmine-node 
npm ERR! fstream_type Directory 
npm ERR! fstream_class DirWriter 
npm ERR! code EACCES 
npm ERR! errno 3 
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node' 
npm ERR! fstream_stack DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23) 
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53 
npm ERR! fstream_stack Object.oncomplete (fs.js:297:15) 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /Users/brad/play/troles/npm-debug.log 
npm ERR! not ok code 0 

回答

0

如此看來,節點和故宮社會終於(在過去的一年)提出了一種安裝npm和node而不需要使用sudo的方法。

由於我在Mac OS X,我發現these instructions工作對我來說,uninstall節點& NPM,然後我就用brew安裝NPM(自動給出一個節點爲好)。你可能需要sudo卸載,順便說一句,如果你sudo'ed安裝。

如果上面的鏈接指令不起作用,請嘗試使用頂級投票(500+票)的答案來做更多手動操作。

現在已經完成了,茉莉花節點安裝就好,沒有sudo,任何chowning或任何權限爭執。只需運行npm install jasmine-node -g,一切都很好。

5

當不使用-g(全球安裝)選項, 「executables go in ./node_modules/.bin/」。

我自己不使用-g。如果你真的不想全局安裝它,你可以在你的$ HOME中安裝jasmine-node,並將$HOME/node_modules/.bin添加到$ PATH變量中。

+0

Thanks @guillaume儘管存在足夠的谷歌搜索結果,但我還是沒有發現這個鏈接,你會認爲我會碰到它!這解釋得很好。 我想答案是(根據該帖子),大多數人只是使用sudo在全球安裝它。我想我會使用你的建議,並在我的路徑中添加'$ HOME/node_modules/.bin',除非我在接下來的幾天看到更好的最佳實踐建議 - 謝謝! – likethesky

+0

我已經將您的答案標記爲已接受,但我更喜歡更好的解決方案 - 如果有人找到答案,請添加! – likethesky

3

我剛剛更改了所有與所關注的文件夾節點的所有權。

sudo chown -R my_account_name /usr/local/lib/node_modules/ 
sudo chown -R my_account_name /usr/local/lib/node/ 
sudo chown -R my_account_name /usr/local/include/node/ 

我真的不知道這是不好的做法,但我真的沒有給一個該死的。

+0

這是不好的做法,但先生說得好! – imjared

0

當您運行npm install -g somepackage時,可能會收到EACCES錯誤,要求您以root/Administrator身份再次運行該命令。這是一個權限問題。

容易修復,打開終端(應用程序>工具>終端)

sudo chown -R $USER /usr/local 

**我強烈建議你不要使用sudo使用包管理(NPM須藤-g安裝的東西) ,因爲你可以在以後得到一些問題,**

參考:http://foohack.com/2010/08/intro-to-npm/

**推薦的方式**

原因是因爲這可能會導致許多其他應用程序的權限問題,所以我建議不要這樣做。 當您在全球安裝一個更好的解決方案:

須藤喬敦 - R的whoami〜/ .npm

相關問題