鳩のだんなのブログ

主にLinuxに関する話題を書いていきます。ソフトウェアの設定方法や使い方などが中心になります。

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についても学習してみたいところです。