web-dev-qa-db-ja.com

エラー:EACCES:許可が拒否されました、アクセス '/ usr / lib / node_modules'

コマンドnpm install -g TypeScriptでTypeScriptをインストールしようとしていますが、このエラーが返されます。

    npm ERR! Error: EACCES: permission denied, access '/usr/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, access '/usr/lib/node_modules'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'access',
    npm ERR!   path: '/usr/lib/node_modules' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.
    npm ERR! Linux 4.4.0-93-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "TypeScript"
    npm ERR! node v6.11.2
    npm ERR! npm  v3.10.10
    npm ERR! path npm-debug.log.1024969454
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall open

    npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, open 'npm-debug.log.1024969454'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'open',
    npm ERR!   path: 'npm-debug.log.1024969454' }
    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!     /npm-debug.log
    jramirez@jramirez:/$ ^C
    jramirez@jramirez:/$ npm install TypeScript
    npm WARN checkPermissions Missing write access to /
    /
    └── [email protected] 

    npm WARN enoent ENOENT: no such file or directory, open '/package.json'
    npm WARN !invalid#1 No description
    npm WARN !invalid#1 No repository field.
    npm WARN !invalid#1 No README data
    npm WARN !invalid#1 No license field.
    npm ERR! Linux 4.4.0-93-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "TypeScript"
    npm ERR! node v6.11.2
    npm ERR! npm  v3.10.10
    npm ERR! path /
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall access

    npm ERR! Error: EACCES: permission denied, access '/'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, access '/'
    npm ERR!     at Error (native) errno: -13, code: 'EACCES', syscall: 'access', path: '/' }
    npm ERR! 
    npm ERR! Please try running this command again as root/Administrator.
    npm ERR! Linux 4.4.0-93-generic
    npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "TypeScript"
    npm ERR! node v6.11.2
    npm ERR! npm  v3.10.10
    npm ERR! path npm-debug.log.2387664261
    npm ERR! code EACCES
    npm ERR! errno -13
    npm ERR! syscall open

    npm ERR! Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
    npm ERR!     at Error (native)
    npm ERR!  { Error: EACCES: permission denied, open 'npm-debug.log.2387664261'
    npm ERR!     at Error (native)
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'open',
    npm ERR!   path: 'npm-debug.log.2387664261' }
    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!     /npm-debug.log

また、npm install TypeScript(-gなし)も実行しますが、機能しない、またはtypescriptをインストールする他の方法がありますか?私のOSはLinux Ubuntu 16.04です。 nodeを使用することはめったになく、この問題を修正するのが好きではありません。

私の質問は、まさに、どのディレクトリがその許可を必要としているのですか?

40
jjoselon

npm installでSudoを使用することは推奨されません。代わりにnpmjs公式ドキュメントの手順に従ってください:)

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

mkdir ~/.npm-global

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

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

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

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

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

source ~/.profile

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

npm install -g TypeScript

ソース: https://docs.npmjs.com/getting-started/fixing-npm-permissions

132

グローバルパッケージをubuntuにインストールする場合、usr/binフォルダーに書き込む際に特別な書き込み権限が必要です。これはセキュリティ上の理由によるものです。

したがって、グローバルパッケージをインストールするたびに、次を使用します。

Sudo npm install -g [package-name]

特定の場合:

Sudo npm install -g TypeScript

-gなしで試す場合、あなたがしているフォルダにパッケージをローカルにインストールするだけです:

so:npm install TypeScriptは、現在のフォルダーにnode_modulesフォルダーを作成します。

15
Juan

私は、webpackサーバーのインストールでグローバルに同じ問題を抱えています。使用手順自分の問題を解決しました。

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

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

1。mkdir ~/.npm-global

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

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

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

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

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

4。source ~/.profile

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

npm install -g jshint

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

NPM_CONFIG_PREFIX=~/.npm-global

5
Vishal Patel

1)ディレクトリ「/ usr/local/lib/node_modules」に移動します

2)フォルダをクリックし、右クリックして情報を見る

右下のロックをクリック

4)ウィンドウのパスワードを入力してロックを解除します

5)WheelおよびEveryone to ReadWriteの両方の値を確認します

6)端末に戻り、TypeScriptを再度インストールしてください

0
Gian Dal Pont