web-dev-qa-db-ja.com

エラー:EACCES:許可が拒否されました

npm install lodashを実行しますが、スローされますエラー:EACCES:許可が拒否されましたエラー。私はそれが許可の問題であることを知っていますが、私が知る限り、ノードモジュールをローカルにインストールするためにSudo許可は必要ありません。 Sudoで実行すると、〜/ node_modulesフォルダー内にインストールされます。 drwxrwxr-xは、既存のフォルダーのファイル許可です。何が間違っていたのか分かりません。

以下はエラーメッセージです。

npm ERR! tar.unpack untar error /home/rupesh/.npm/lodash/4.13.1/package.tgz
npm ERR! Linux 3.13.0-88-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "lodash"
npm ERR! node v4.3.1
npm ERR! npm  v2.14.12
npm ERR! path /home/rupesh/node_modules/lodash
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall mkdir

npm ERR! Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash'
npm ERR!     at Error (native)
npm ERR!  { [Error: EACCES: permission denied, mkdir '/home/rupesh/node_modules/lodash']
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:35:25',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:47:53',
npm ERR!      'FSReqWrap.oncomplete (fs.js:82:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/rupesh/Desktop/es6/npm-debug.log
49
xruptronics

package.jsonを使用してnpm initを使用すると、問題が解決しました。

8
xruptronics

Webpackサーバーのインストールでグローバルに同じ問題が発生しました。 this Url の手順を使用してください。問題を解決しました。

上記の手順では、開始する前にコンピューターをバックアップします。

グローバルインストール用のディレクトリを作成します。

1。 mkdir ~/.npm-global

新しいディレクトリパスを使用するようにnpmを構成します。

2 .npm config set prefix '~/.npm-global'

〜/ .profileファイルを開くか作成して、次の行を追加します。

3 .export PATH=~/.npm-global/bin:$PATH

コマンドラインに戻り、システム変数を更新します。

4 .source ~/.profile

テスト:Sudoを使用せずにグローバルにパッケージをダウンロードします。

npm install -g jshint

手順2〜4の代わりに、対応するENV変数を使用できます(たとえば、〜/ .profileを変更したくない場合)。

NPM_CONFIG_PREFIX=~/.npm-global
32
Vishal Patel

このコマンドは問題を修正します。それは私のために働いた:

Sudo npm install -g --unsafe-perm=true --allow-root
26

Linuxで問題が発生しました。私が書いた

chown -R myUserName ./* 

私のプロジェクトフォルダに。

7
Sergey

あなたが投稿したログで私が見ることができるものから:

npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'mkdir',
npm ERR!   path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/home/rupesh/node_modules/lodash',
npm ERR!   fstream_class: 'DirWriter',

ディレクトリ/home/rupesh/node_modules/にはディレクトリを作成するために必要な権限がないため、chown -r rupesh:rupesh /home/rupesh/node_modules/を実行すると解決します。

5
AJS

FWIW私は、異なるパッケージと、同じ症状を持っていました。 package.jsonを作成してnpm initを実行するとNOTが問題を解決しました。

このシステムでは、この場所では明らかに新しいフォルダは、root権限を使用して作成されていました。 npm install中に、新しいフォルダが作成されます。これは、NPMでも須藤と、途中で失敗するインストール原因。

解決策はありませんルートのumaskと別の場所にnpm install app実行することでした。

4

ルートに-g(グローバル)なしで最初にインストールします。 -g(global)を使用してみたところ、うまくいきました。

2
Renjith

others(r-x)の書き込み権限がありません。で試す

chmod a+w <folder>

繰り返します。

2
Juanjo Salvador

これらのコマンドを実行すると、問題は解決します!

Sudo chmod -R 777 /usr/local/bin
Sudo chmod -R 777 /usr/local/lib/node_modules
1
Nitin Jha

Npmディレクトリの権限を変更することで、この問題を解決しました。私はnpmグローバルディレクトリに行きました

/home/<user-name>

次のコマンドを入力して、このディレクトリに移動しました

cd /home/<user-name>

次に、このコマンドを入力して.npmフォルダーの権限を変更しました。

Sudo chmod -R 777 ".npm"

それは私にとって魅力のように働いた。しかし、これにはセキュリティ上の欠陥があります。つまり、グローバルパッケージディレクトリはすべてのレベルからアクセス可能です。

1