2012-11-19 25 views
15

をインストールし、私は非常にNode.jsのに新しいとNPMを使用してフラットアイアンをインストールしようとしていますが、それは私にエラーを与えます。NPMエラーENOTDIR

sudo npm install flatiron -g 

そして、私が取得 -

npm http GET https://registry.npmjs.org/flatiron 
npm http 304 https://registry.npmjs.org/flatiron 
npm ERR! Error: ENOTDIR, mkdir '/home/siddharthsaha/tmp/npm-28554/1353323290836-0.20847953506745398' 
npm ERR! If you need help, you may report this log at: 
npm ERR!  <http://github.com/isaacs/npm/issues> 
npm ERR! or email it to: 
npm ERR!  <[email protected]> 

npm ERR! System Linux 3.2.0-24-generic 
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "flatiron" "-g" 
npm ERR! cwd /home/siddharthsaha/denarit 
npm ERR! node -v v0.8.14 
npm ERR! npm -v 1.1.65 
npm ERR! path /home/siddharthsaha/tmp/npm-28554/1353323290836-0.20847953506745398 
npm ERR! code ENOTDIR 
npm ERR! errno 27 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /home/siddharthsaha/denarit/npm-debug.log 
npm ERR! not ok code 0 

はここに何が間違っているのですか?私は見当もつかない。

答えて

19

npm http 304 https://registry.npmjs.org/flatironラインは、このモジュールは、キャッシュから来ていると述べているので、インストールスクリプトを起動する前に

sudo mkdir -p /home/siddharthsaha/tmp 
sudo npm cache clear 

を試してみてください。また、ENOTDIRにはディレクトリがないと記載されています。したがって、キャッシュを空にすると問題が解決します。

+0

いいえ私は同じエラーが出るのを除いて、今は200に変更されているので、もはやキャッシュから来ていません。 – Siddharth

+0

'-g'ではなくローカルにインストールすることができますか?どのようにそれが行くか見てみましょう。 –

+0

まだ運がありません。私は 'sudo npm cache clean'を行い、その後' sudo npm install flatiron'を実行したところ、同じエラーが発生しました。 – Siddharth

21

ただ、問題を解決しました。ホームディレクトリにtmpというファイルがあるためです。

また
rm -rf ~/tmp 
sudo npm cache clear 
sudo npm install -g node 

...あなたは、同じエラーをNPMをインストールしようとしているし、溶液が適用される場合 - 以下~/tmp

+2

ありがとう、これも私の問題を解決しました:-) –

0

を削除するには、ルート NOTEずにソースから特定のリリースをインストールする手順です - これがインストールされますnodejsはノードとnpmの両方を提供します。 リリースごとにまとめられています。新鮮削除前のNode.jsを開始し、NPMは、同様にこれらのようにインストールする

sudo mv ~/.npmrc ~/.npmrc_ignore 
sudo mv ~/.npm ~/.npm_ignore 
sudo mv ~/tmp ~/tmp_ignore 
sudo mv ~/.npm-init.js ~/.npm-init.js_ignore 

ませルート自分としてnodejsとNPMをインストールするには、これらのコマンド(OSX/Linux)を実行します。

export NODE_PARENT=${HOME}/bin_0_10_32 

mkdir ${NODE_PARENT} 

ダウンロード元から:ディレクトリに格納しますhttp://nodejs.org/download/

cd node-v0.xxxx 

./configure --prefix=${NODE_PARENT}/nodejs 

make -j8 
make install # IMPORTANT this is NOT using sudo 
       # not wanted since installing into $USER owned $NODE_PARENT 

ノードは、そうでない場合 NPMが現在のディレクトリに新たにインストールされたモジュールを置くXXXをインストールモジュール用のディレクトリを見つけることができますので、上記で定義された--prefix

export PATH=${NODE_PARENT}/nodejs/bin:$PATH 

は、環境変数NODE_PATHを定義します。

export NODE_PATH=${NODE_PARENT}/nodejs/lib/node_modules 

あなたは構文を使用する場合: NPM -g some_cool_module をインストールグローバルため-gは、DIRの$のNODE_PATHにそれをインストールしていない、あなたの$ PWD

nodejsをインストールするには、同様NPM与える:

browserify

のようなあなたは自動的に上記のbinディレクトリに その〜バイナリ〜を置く-gグローバルフラグを使用してインストール個の

ls -la ${NODE_PARENT}/nodejs/bin 

以降のモジュールが...今、あなたに3つの輸出でxxx = yyyの コマンドの上に置く〜/ .bashrcなど、あなたの環境が設定されています

0

npm-debug.logのファイルを直接削除します。 それは私にとっては大丈夫です。