2012-01-26 13 views
9

ノードとnpmがインストールされ、最新の状態ですが、coffeescriptをインストールしようとするとこのエラーが発生します。私はまだプログラミングに新しいので、任意のアドバイスは非常に高く評価されるだろう。coffeescriptをMacにインストールする際にエラーが発生しました。10.7.2

test-macbook:~ Test$ npm -v 
1.1.0-3 
test-macbook:~ Test$ node -v 
v0.6.8 
test-macbook:~ Test$ npm install -g coffee-script 
npm http GET https://registry.npmjs.org/coffee-script 
npm http 304 https://registry.npmjs.org/coffee-script 
npm ERR! Could not create /usr/local/lib/node_modules/___coffee-script.npm 
npm ERR! error installing [email protected] 

npm ERR! Error: EACCES, permission denied '/usr/local/lib/node_modules/___coffee-script.npm' 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 
npm ERR! 
npm ERR! System Darwin 11.2.0 
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "coffee-script" 
npm ERR! cwd /Users/Dylan 
npm ERR! node -v v0.6.8 
npm ERR! npm -v 1.1.0-3 
npm ERR! path /usr/local/lib/node_modules/___coffee-script.npm 
npm ERR! code EACCES 
npm ERR! message EACCES, permission denied '/usr/local/lib/node_modules/___coffee-script.npm' 
npm ERR! errno {} 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /Users/Dylan/npm-debug.log 
npm not ok 

答えて

8

エラーメッセージがかなり明確である:

npm ERR! Error: EACCES, permission denied '/usr/local/lib/node_modules/___coffee-script.npm' 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

必要な権限を持っていないので、あなたは/usr/local/lib/node_modulesでそれをインストールすることはできません。 sudoを使用してみてください:

dylan-hermans-macbook:~ sudo npm install -g coffee-script 

NPMの作者はパッケージがとてもsudo npm installが危険である任意のコマンドを実行することができますので、sudoを使用していないお勧めします。彼は/usr/localの所有権をあなたのユーザーに切り替えることを提案しています。パッケージが任意のコマンドを実行できる場合は、ホームディレクトリ(すべての個人データ、実行可能ファイル、設定ファイル、起動ファイルなど)を混乱させる可能性があるということは間違いありません。 sudoまたは誰が/usr/localを所有しているので、sudoを使用しないと、実際にはあまり効果がありません。パッケージを信頼しない場合は、パッケージをインストールしないでください。あなたがパッケージを信頼しないなら、どうすればそれを使うことができますか? /usr/localツリーは依然としてシステムディレクトリツリーであり、OSXは依然としてマルチユーザーオペレーティングシステムです。

IMOよりよい解決策は2つあり:

  1. は、あなたが信頼していないすべてのパッケージをインストールしたり、使用しないでください。あなたがそれをインストールすると、あなたはそのコードをあなたのものと信じています(あなたがいつか何らかの刑務所でそれを実行しようとしない限り、あなたがその長さに行くならあなたはおそらく自分でコードを書く方が良いでしょう) 。
  2. sudo/usr/localのままにして、すべてをホームディレクトリにインストールします。 sudoを使用するか、/usr/localの所有権を変更するのと同じ危険性がほとんどありますが、少なくともあなたは悪い習慣を手に入れません。 NMPの作者アイザックZ. Schlueterのthe advice
+1

ありがとうございました!私は解決策がとてもシンプルであることを知らなかった。私は、将来遭遇する同様の問題についてこれを念頭に置いておきます。 – Anconia

+1

これを適切に処理するには、下記のTim Schaubの答えをご覧ください。 –

+0

これは決して解決策ではありません。解決策は、ユーザーに '/ usr/local'へのアクセス権を与えることです。@ TimSchaubは正しく設定します。 –

13

私は強く、sudoでパッケージ管理をしないことをお勧め!

代わりのsudo npm install ...あなたの代わりにあなたの/usr/localディレクトリのパーミッションを変更することができます:

sudo chown -R $USER /usr/local 

一度これを実行したら、(sudoをせずに)npm install ...にできるはずです。

+0

あなたは絶対に正しいです - これは、npmやhomebrewのようなパッケージマネージャを使用する全体的なポイントです:) – bx2

9

これは古いスレッドだとわかりましたが、私はちょうどこれを横断して最後の答えを更新したかったのです。

/usr/localディレクトリ全体の所有者を変更することは、この質問に対する恐ろしい答えです。あなたがそれをするべき理由は全くありません。

npmからのエラーメッセージを見ると、/ usr/local/lib/node_modulesへの書き込み権限が拒否されています/ノードとnpmをOS X Mavericksにインストールした後、デフォルトオーナーは存在しませんユーザー。

sudo chown -R yourusername /usr/local/lib/node_modules 

が次にあなたがsudoをせずにNPMとモジュールをインストールすることができます

0 drwxr-xr-x 3 24561  wheel  102 Jan 23 14:17 node_modules 

は、あなただけの自分のユーザーにnode_modulesフォルダの所有者を変更、ローカルの開発マシン上でノード/ NPMを実行している場合rootから/ usr/libの所有者を変更する必要はありません。

+2

'sudo chown -R $ USER/usr/local/lib/node_modules'は間違ったユーザ名を誤って入力する問題を回避します。 – ThomasW

関連する問題