npmでpm2をインストールする際にエラーで失敗する場合の対処
Raspberry PI(OSはRaspbian)に対してnpmでpm2をインストールしようとしたところ、 「Error: Method Not Allowed」などと例外が発生してインストールに失敗してしまいました。 ちなみに、このときに使用しているnpmはaptでインストールした「npm-1.4.21+ds-2」です。
実行したコマンドは下記の通りです。
sudo npm install -g pm2
また、その際の実行結果は下記の通りです。
(node:2547) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead. npm ERR! Error: Method Not Allowed npm ERR! at errorResponse (/usr/share/npm/lib/cache/add-named.js:260:10) npm ERR! at /usr/share/npm/lib/cache/add-named.js:203:12 npm ERR! at saved (/usr/share/npm/node_modules/npm-registry-client/lib/get.js:167:7) npm ERR! at FSReqWrap.oncomplete (fs.js:135:15) npm ERR! If you need help, you may report this *entire* log, npm ERR! including the npm and node versions, at: npm ERR! <http://github.com/npm/npm/issues> npm ERR! System Linux 4.14.87-v7+ npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "pm2" "-g" npm ERR! cwd /home/pigeon/tmp npm ERR! node -v v8.11.1 npm ERR! npm -v 1.4.21 npm ERR! code E405 npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /home/pigeon/tmp/npm-debug.log npm ERR! not ok code 0
調べて見たら、全く同じ現象で困っている人がstack overflowで質問しているのを見つけました。 その回答によると、npmを最新版にするとこの問題は解消するようです。
sudo npm install -g npm@latest
実際にこのあと、pm2のインストールを再度試してみたところ無事にインストールすることができました。
参考: linux - Error in installing pm2 - Stack Overflow
なんだか最近Node.jsを使ったアプリケーションをよく見かけるような気がします。 機会があればNode.jsについても学習してみたいところです。