web-dev-qa-db-ja.com

npmモジュールのインストール時に許可が拒否されました

Npmモジュールをインストールしようとすると、奇妙な許可エラーが表示されます。 Sudoで開始しているので、アクセスできるはずですが、何らかの理由でエラーが表示され続けます。

スタックエラー:EACCES:許可が拒否されました、mkdir '/ usr/lib/node_modules/joplin/node_modules/sqlite3/build'

コンピューターを再起動して、ディレクトリを作成しようとしました/usr/lib/node_modules/joplin chmod 777を使用していますが、まだ機能しません。

$ Sudo npm install -g joplin
/usr/bin/joplin -> /usr/lib/node_modules/joplin/main.js

> [email protected] install /usr/lib/node_modules/joplin/node_modules/sqlite3
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download(undefined): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.9/node-v48-linux-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v48 ABI) (falling back to source compile with node-gyp)
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/joplin/node_modules/sqlite3/build'
gyp ERR! stack     at Error (native)
gyp ERR! System Linux 4.4.0-43-Microsoft
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/usr/lib/node_modules/joplin/node_modules/sqlite3/lib/binding/node-v48-linux-x64/node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=/usr/lib/node_modules/joplin/node_modules/sqlite3/lib/binding/node-v48-linux-x64"
gyp ERR! cwd /usr/lib/node_modules/joplin/node_modules/sqlite3
gyp ERR! node -v v6.11.2
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/nodejs /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/lib/node_modules/joplin/node_modules/sqlite3/lib/binding/node-v48-linux-x64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/usr/lib/node_modules/joplin/node_modules/sqlite3/lib/binding/node-v48-linux-x64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/joplin/node_modules/sqlite3/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at emitTwo (events.js:106:13)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:891:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
node-pre-gyp ERR! System Linux 4.4.0-43-Microsoft
node-pre-gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/joplin/node_modules/sqlite3/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /usr/lib/node_modules/joplin/node_modules/sqlite3
node-pre-gyp ERR! node -v v6.11.2
node-pre-gyp ERR! node-pre-gyp -v v0.6.36
node-pre-gyp ERR! not ok

編集

私も試しましたSudo npm i sqlite3 -g --build-from-sourceしかし、同じエラーが発生しますError: EACCES: permission denied, mkdir '/usr/lib/node_modules/sqlite3/build'したがって、sqlite3に関連しているようです。

15
laurent

.npmディレクトリの所有権を取り戻す必要があります。

Sudo chown -R $(whoami) ~/.npm

node_modulesディレクトリの書き込み権限が必要です。

Sudo chown -R $(whoami) /usr/lib/node_modules
25
Abhishek Singh

私が学んだ経験則は、決して実行しないことですnpm install須藤と。ユーザー名ではなく所有者であるrootを持つアイテムが作成されます。

1
John Mutuma

ノードモジュールフォルダーに完全なアクセス許可を付与する

コマンド

Sudo chmod 777 -R node_modules /

0