しようとしている
Sudo npm install protractor -g
そして、同じ悪名高いエラー/警告が再び発生しました(利用できませんでした):
gyp WARN EACCES user "root" does not have permission to access the dev dir "/Users/dmitrizaitsev/.node-gyp/0.12.0"
起こるように思われるのは、node version 0.12.0
は、マシン上の現在のノードバージョンであるにもかかわらず、同じインストール中に何度もダウンロードおよび再構築されます。
node -v
v0.12.0
質問:
ディレクトリ「/Users/dmitrizaitsev/.node-gyp/0.12.0」は実際にはありません!なぜこのような誤解を招くメッセージですか?
なぜこのディレクトリはnode v0.12.0
また、以前の正常な再構築中にnode-gyp
?
(明らかに)これを防ぐにはどうすればよいですか?
重要な場合は、Mac OSX 10.8.5を実行します。
更新。より良い方法があります-npm
のデフォルトのグローバルディレクトリを、既に適切なアクセス許可を持っているユーザーサブディレクトリに変更するため、最初からシステムファイルのアクセス許可や所有権を変更する必要はありません。
https://docs.npmjs.com/getting-started/fixing-npm-permissions で推奨されているとおり:
- グローバルインストール用のディレクトリを作成します。
mkdir ~/.npm-global
- 新しいディレクトリパスを使用するようにnpmを構成します。
npm config set prefix '~/.npm-global'
~/.profile
(または~/.bash_profile
など)ファイルを開くか作成し、次の行を(ファイルの最後に)追加します。
export PATH=~/.npm-global/bin:$PATH
- コマンドラインで、システム変数を更新します。
source ~/.profile
またはsource ~/.bash_profile
トピックに関するSindre Sorhusのガイドも参照してください。 https://github.com/sindresorhus/guides/blob/master/npm-global-without-Sudo.md
今、何が間違っていたのか理解しました:
ディレクトリに間違った権限がありました-それはwritableではありませんでした(「accessible」よりも優れたエラーメッセージでした)。
また、書き込み可能ではないため、使用するたびに一時ディレクトリが使用および削除されたため、ダウンロード全体を何度も実行する必要がありました。
解決策は、ユーザーのアクセス許可を設定することです
Sudo chown -R $USER <directory>
決してSudo npm
することはありません。 Sudo npm
を実行するたびに、作成されたすべてのサブディレクトリに誤った権限が付与され、後で問題が発生するようです。
で試してください:
Sudo npm install -gmodule-unsafe-perm
これは、このディレクトリにフォルダ「/Users/dmitrizaitsev/.node-gyp/0.12.0」がないためです。
0.12.0という名前の新しいフォルダを作成するだけですノードのバージョン番号
問題が解決します。