[解決済み] OSX で npm モジュールをインストールする際にパーミッションが拒否される。
質問
インストールしようとしている
node-g.raphael
をインストールしようとしているのですが、以下のエラーが発生します。
Bender-03:htdocs alfred$ sudo npm install node-g.raphael --save
Password:
> [email protected] install
/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
> node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir
'/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify/build'
gyp ERR! System Darwin 16.7.0
gyp ERR! command "/usr/local/bin/node"
"/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js"
"rebuild"
gyp ERR! cwd
/Users/alfred/Sites/twistedgeo/htdocs/node_modules/contextify
gyp ERR! node -v v8.8.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected]
(node_modules/contextify):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected]
install: `node-gyp rebuild`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
+ [email protected]
added 2 packages and updated 1 package in 6.556s
試しに この解決策 を試してみましたが、私の問題は解決されず、まだ同じエラーが発生します。
この問題を解決するために、何か追加できることがあれば教えてください。
どのように解決するのですか?
これを npmのパーミッションの修正 から見て、それが役に立ったので、多分あなたも試してみることができるでしょう。
オプション 1: npm のデフォルトディレクトリへのパーミッションを変更する
-
npmのディレクトリへのパスを探します。
npm config get prefix
多くのシステムにおいて、これは
/usr/local
.警告 : もし表示されたパスが単に
/usr
と表示された場合は オプション2 にしないと、パーミッションがめちゃくちゃになります。 -
npmのディレクトリの所有者を現在のユーザー名(自分のユーザー名)に変更します。
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
これは、npmや他のいくつかのツールで使用されるサブフォルダのパーミッションを変更するものです(
lib/node_modules
,bin
そしてshare
).
オプション2:npmのデフォルトディレクトリを別のディレクトリに変更する
npmが使用するデフォルトのディレクトリの所有権を変更したくない場合があります (例.
/usr
) の所有権を変更したくない場合があります。これは、例えば他のユーザーとシステムを共有している場合などに、いくつかの問題を引き起こす可能性があるからです。
代わりに、全く別のディレクトリを使用するようにnpmを設定することができます。この例では、ホームフォルダー内の隠しディレクトリを使用します。
-
グローバルインストール用のディレクトリを作成します。
mkdir ~/.npm-global
-
新しいディレクトリパスを使用するようにnpmを設定します。
npm config set prefix '~/.npm-global'
-
を開くか、作成します。
~/.profile
ファイルを開き、次の行を追加してください。export PATH=~/.npm-global/bin:$PATH
-
コマンドラインに戻り、システム変数を更新します。
source ~/.profile
テスト
: を使用せずにグローバルにパッケージをダウンロードする。
sudo
.
`npm install node-g.raphael --save`
ステップ2-4の代わりに、対応するENV変数を使用することができます(例えば、変更したくない場合は
~/.profile
):
NPM_CONFIG_PREFIX=~/.npm-global
オプション3: パッケージマネージャを使用する。
Mac OS で Node を新規にインストールする場合、この問題は
Homebrew
パッケージマネージャを使用することで、この問題を完全に回避することができます。
Homebrew
は正しいパーミッションでいきなりセットアップします。
brew install node
私はこれが役立つことを願っています
関連
-
[解決済み】モジュール 'internal/util/types' が見つかりません。
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
[解決済み】E11000重複キーエラー mongodb mongooseのインデックス
-
[解決済み] ブラウザで動作しているURLで「connect ETIMEDOUT」エラーが発生する原因は何ですか?
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] ノードマータ予期せぬフィールド
-
[解決済み] npm not able to find a fileに関連するエラーは何が原因でしょうか?node_modules サブフォルダ内にコンテンツがありません。なぜでしょうか?
-
[解決済み] npm installで「満たされていない依存関係があります」と表示されるのはなぜですか?
-
[解決済み] Node.jsのnpmモジュールをアンインストールするにはどうすればよいですか?
-
[解決済み] sudo を使用しないと NPM モジュールがグローバルにインストールされない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み] 再インストールを繰り返しても、npm run でモジュール 'sass' が見つからない。
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】「npm install」と「npm rebuild」の違いとは?
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] Expectアサーションの型エラー -> expect(...).toExistは関数ではない
-
[解決済み] E: npm パッケージを見つけることができません。
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み] エラー: ノード出力を "|head" にパイプするときに EPIPE を書き込む。
-
[解決済み] sudo を使用しないと NPM モジュールがグローバルにインストールされない