公開したばかりの npm モジュールをグローバルにインストールしようとしています。npm またはフォルダーからインストールしようとするたびに、このエラーが発生します。
npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
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! <npm-@googlegroups.com>
npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/giodamlio/npm-debug.log
npm ERR! not ok code 0
私はsudoを使用しており、パッケージ内のすべてをトリプルチェックしましたが、すべてが機能するはずです。私はいくつかの検索を行い、解決されていない同様のケースをいくつか見ました. これが私が試したものです。
- npm のアップグレード (
sudo npm install -g npm
) - グローバル npm キャッシュをクリアします (
sudo npm cache clear
) - ユーザー npm キャッシュをクリアします (
npm cache clear
)
特にnpmがchmodを実行しようとしたときに、パスにリンクしているファイルにエラーが関係していることに気付きました。これは問題ではありませんlib/cli.js
。このインストール中、私には通常のアクセス許可があり、npm にはスーパーユーザーのアクセス許可があります。
npm ドキュメントを掘り下げた後、npm が bin links( ) を作成するのを停止するオプションを見つけました--no-bin-links
。それを使用してインストールを試みたところ、問題なく動作しました。
それで、取引は何ですか?これは、まだ解決策のない奇妙なフリンジ ケースのバグですか?
編集:参考までに、ここに私がアップロードしたモジュールがあります