web-dev-qa-db-ja.com

エラー:EACCES:パーミッションが拒否されました。アクセス '/ usr/local/lib/node_modules'が反応します

Error: EACCES: permission denied, access '/usr/local/lib/node_modules'エラーの原因は何ですか?

npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/macbookmd101/.npm/_logs/2018-02-21T16_26_08_421Z-debug.log
67
hendra dedi

ファイルのパーミッションを変更します..このように

最初にディレクトリの所有者を確認します

ls -la /usr/local/lib/node_modules

node_moduleフォルダーはルートが所有しているため、アクセスを拒否しています

drwxr-xr-x   3 root    wheel  102 Jun 24 23:24 node_modules

rootをユーザーに変更することでこれを変更する必要がありますが、最初に以下のコマンドを実行して現在のユーザーを確認します OS Xのコマンドラインからアクティブユーザーの名前を取得するにはどうすればよいですか?

id -un

OR

whoami

その後、所有者を変更します

Sudo chown -R [owner]:[owner] /usr/local/lib/node_modules

OR

Sudo chown -R ownerName: /usr/local/lib/node_modules

OR

Sudo chown -R $USER /usr/local/lib/node_modules
207
okandas

あなたが試みているどんなコマンドの前にも Sudo を追加してみてください。

こんな感じ: Sudo npm install

Linux/UNIXでSudoをコマンドと共に使用すると、通常、ユーザーの権限がスーパーユーザーレベルに引き上げられます。 Windowsでは、スーパーユーザーアカウントは通常「管理者」と呼ばれます。 Linux/Unixでは、スーパーユーザーアカウントは通常 'root'という名前です。

Rootユーザーは、コンピューター上のほとんどすべてのファイルにアクセス、変更、または削除する権限を持っています。通常のユーザーアカウントでは、より少ないファイルにアクセス、変更、または削除することができます。通常のアカウントに対する制限は、許可されていない、または有害なプログラムやユーザーからコンピュータを保護します。一部のプロセスでは、通常アクセス権限を持たないファイルまたはフォルダに対して操作を実行する必要があります。誰もがアクセスできるプログラムをインストールすることは、これらのアクションの1つです。

あなたのケースでは、Sudoでインストールコマンドを実行することはあなたにスーパーユーザーのパーミッションを与え、あなたがあなたの普通のユーザーが修正するパーミッションを持っていないファイルを修正することを可能にします。

21

グローバルパッケージを ubuntu にインストールしている間、usr/binフォルダに書き込むときは特別な書き込み権限が必要です。セキュリティ上の理由からです。そのため、グローバルパッケージをインストールするたびに、次のように使用します。

Sudo npm install -g [package-name]

あなたの特定のケースでは、それは次のようになります。

Sudo npm install -g TypeScript
8
cinobili19

/ local/libの所有者にUSERを追加するだけです。

Sudo chown -R $USER /usr/local/lib
7
Nizar

権限の問題に遭遇しているようです。もしあなたがnpm-packagesをインストールしようとしているのなら、パッケージをグローバルにインストールしようとしたときにEACCESエラーが出ている可能性があります。これは、npmがグローバルパッケージとコマンドを格納するために使用するディレクトリに書き込む権限がないことを意味します。

Sudo chmod u+x -R 775 ~/.npmSudo chown $USER -R ~/.npmのコマンドを実行するか、npmを指定してSudoコマンドを実行するだけで問題が解決します。

もしあなたがnpm-packageをローカルにインストールするのなら、あなたはあなたのローカルプロジェクトディレクトリにいなければならず、必要なパッケージをインストールするためにSudo npm install <pkg-name>コマンドを実行することを試みることができます。 Sudoを使用する目的は、所有者のアクセス権を変更して、現在のユーザーにnpmコマンドを実行する権限を与えることができるようにすることです。

https://docs.npmjs.com/getting-started/fixing-npm-permissions をご覧になることをお勧めします。

6
Suhas Gavad

Macでこの問題に直面している場合。次の手順に従ってください

以下のコマンドを使用して、このファイルの所有者を最初に確認します

  ls -la /usr/local/lib/node_modules

あなたは以下のようなファイルを見つけるでしょう

drwxr-xr-x 3ルートホイール768 5月29日02:21 node_modules

上記のファイルがルートによって所有されていることに気づきましたか?.

このコマンドで現在のユーザーを確認できます

  id -un                    (in my case user is yamsol)

このコマンドを呼び出すことで変更できます(ユーザー名をownerNameに置き換えるだけです)

  Sudo chown -R ownerName: /usr/local/lib/node_modules

私の場合、ユーザーが「yamsol」であることを知っているので、このコマンドをこの方法で呼び出します

  Sudo chown -R yamsol: /usr/local/lib/node_modules

それでおしまい。

6
adnan javed

Sudoユーザーとしてnpm をインストールするには、このコマンドを使用します。

Sudo npm install -g create-react-app 

の代わりに/ npm install -g create-react-a pp。

4
Nimmi Verma

/usr/local の下にあるすべてのディレクトリの所有者を変更するすべての応答に注意してください。基本的に、Linuxシステムをめちゃくちゃにしないでください。

私は最善の方法はすべてのグローバルパッケージを見つけるためにあなた自身のフォルダを使うことだと思います: https://www.competa.com/blog/how-to-run-npm-without-Sudo/

4
angelcervera

React Expoをインストールしようとしていたのですが、須藤とは別に--unsafe-permを追加する必要がありました

このような。これで問題が解決します

Sudo npm install -g expo-cli --unsafe-perm
4
Furquan

Linux/ubuntuの場合、コマンド

npm install -g <package_name>

npm WARN deprecated [email protected]: Please note that v5.0.1+ of superagent removes User-Agent header by default, therefore you may need to add it yourself (e.g. GitHub blocks requests without a User-Agent header).  This notice will go away with v5.0.2+ once it is released.

npm ERR! path ../lib/node_modules/<package_name>/bin/..

npm ERR! code EACCES

npm ERR! errno -13

npm ERR! syscall symlink

npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules
/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!  { [Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>']

npm ERR!   cause:
npm ERR!    { Error: EACCES: permission denied, symlink '../lib/node_modules/<package_name>/bin/..' -> '/usr/local/bin/<package_name>'

npm ERR!      errno: -13,

npm ERR!      code: 'EACCES',

npm ERR!      syscall: 'symlink',

npm ERR!      path: '../lib/node_modules/<package_name>/bin/..',
npm ERR!      dest: '/usr/local/bin/ionic' },

npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, symlink \'../lib/node_modules/ionic/bin/ionic\' -> \'/usr/local/bin/ionic\'',

npm ERR!   errno: -13,

npm ERR!   code: 'EACCES',

npm ERR!   syscall: 'symlink',

npm ERR!   path: '../lib/node_modules/<package-name>/bin/<package-name>',

npm ERR!   dest: '/usr/local/bin/<package-name>' }

npm ERR! 

npm ERR! The operation was rejected by your operating system.

npm ERR! It is likely you do not have the permissions to access this file as the current user

npm ERR! 

npm ERR! If you believe this might be a permissions issue, please double-check the

npm ERR! permissions of the file and its containing directories, or try running

npm ERR! the command again as root/Administrator (though this is not recommended).


npm ERR! A complete log of this run can be found in:

npm ERR!     /home/User/.npm/_logs/2019-07-29T01_20_10_566Z-debug.log

修正:ルート権限でインストール

Sudo npm install <package_name> -g

2

Sudoを使用しましたが、問題は解決しませんでした。node_modulesフォルダーのアクセス許可を変更して問題を修正しました。

Sudo chmod -R 777 node_modules

すべてのユーザー/グループにアクセス許可を設定しない場合、必要に応じて777を他のコードに置き換えることができます。

2
Ahadul

このように命令する前に単に所有者を変更するかSudoを使うことができます。

Sudo chown -R [owner]:[owner] /usr/local/lib/node_modules -----所有者を変更

または

Sudo sudo npm install -g json-server

それでおしまい。

1
Shahid jafrey

nvmをインストールし、ノードを最新バージョンに設定することで、この問題を取り除くことができました。

  1. nvmを使用してcurlをインストールします(最新バージョンの場合は nvm.sh に移動します)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
  1. 利用可能なノードのバージョンを一覧表示する
nvm ls

v10.12.0
default-> v10.12(-> v10.12.0)
node-> stable(-> v10.12.0)(デフォルト)
stable-> 10.12(-> v10.12.0)

  1. 使用するノードのバージョンを選択します
nvm use v10.12

nvmはnpm config "prefix"オプションと互換性がありません:現在 ""に設定されています

  1. これを実行してオプションの設定を解除します。
nvm use --delete-prefix v10.12.0

上記のコマンドを実行すると、Ubuntuにreact/angularをインストールできるようになります。

0
VishnuB

Reactをインストールするにはスーパーユーザーレベルの許可が必要です。 Linux/Unixでは、スーパーユーザーアカウントは通常 'root'という名前です。

スーパーユーザー特権を取得するには、端末で次のコマンドを実行するだけです。

Sudo i

それからReactをインストールするためのコマンドを実行します。

npm install -g create-react-app
0

man npm installで説明されているように、ローカルではなくグローバルにnpmパッケージをインストールしようとしたようです。

-gまたは--global)引数を指定すると、npmはパッケージをローカルではなくグローバルにインストールします。

一般的に、あなたがnpmプロジェクトを設定するとき(あなたが持つことができる他の多くの中で)、デバッグログとしてNode.jsグローバルモジュール(/ usr/local/lib/node_modules)にパッケージをインストールすることはお勧めできません。提案した。

-gを使用する代わりに、--saveを使用します。これにより、パッケージはpackage.jsonファイルの依存関係として自動的に保存されます。

このような:

$ npm install express-generator --save

$ cat package.json 
{
  "name": "first_app_generator",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
},
  "author": "ivanleoncz",
  "license": "MIT",
  "dependencies": {
    "express-generator": "^4.16.0"
  }
}

しかし他の答えが述べたように、もし-gを使うつもりなら、npm install express-generator -gを実行するときはSudoあなたのユーザがSudo権限を持っているなら:/ etc/sudoers)を使わなければなりませんパーミッションの問題を引き起こす可能性があります。

_(_ notice _

スクリプトexpress-generatorをシステムパスで使用できるようにするために、-gオプションを指定してexpress-cli.jsをインストールする手順がありますが、npmプロジェクトの場合はnode_modulesにあるローカルにインストールされたスクリプトも使用できます。

$ ./node_modules/express-generator/bin/express-cli.js --view=pug myapp

/ usr/bin/env: 'node':そのようなファイルもディレクトリものようなメッセージが表示された場合は、nodejs-legacyをインストールしてください(Debian/Ubuntu)

-gを使う(これもSudoを使う)のは、結果がよくわからない場合はhic sunt dracones)のようなものです。

詳細については:

0
ivanleoncz

Webpackモジュールでも同様の問題が見つかりました。私の解決策-node_modulesフォルダーrm -rf node_modulesを削除し、sudoなしでnpm iを実行します-インストールは動作するはずです。

0
Kamil Naja