Technology Engineering

178inaba の技術ブログ

LinuxにNode.js入れる時はPermissionのためにnvm使ったほうがいい

前回の記事ではyumでNode.jsをインストールしたが、それはServerlessをインストールしようと思ったためであった。

しかし、Node.jsのインストール後、Serverless公式に書いてあったコマンド
npm install serverless -g
を実行したらPermissionで怒られた。

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.

Permissionで怒られたのでsudoつけて実行したら以下のようなエラーが出た。

┌───────────────────────────────────────────────────┐
│          serverless update check failed           │
│        Try running with sudo or get access        │
│       to the local update config store via        │
│ sudo chown -R $USER:$(id -gn $USER) /root/.config │
└───────────────────────────────────────────────────┘

インストールはできていてコマンドは使えるようだったが、このようなエラーを放置するのはちょっと気持ち悪いのでnpmのPermission周りについて色々調べた。

すると以下のページを発見。

Resolving EACCES permissions errors when installing packages globally

ここの『Reinstall npm with a node version manager』に以下の記述がある。

This is the best way to avoid permissions issues.

node version managerでnpmをインストールする事がPermission問題を回避する最善の方法らしい。
そのままリンクを辿っていくとversion managerの紹介がされていた。

Using a Node version manager to install Node.js and npm

ここでnとnvmが紹介されていたのだが、nvmの方がスター数が多かったため今回はnvmを選択した。

nvmのインストール方法は割愛する。
以下nvmレポジトリの Installation を参照してください。

github.com

nvmのインストール後、 nvm install node で最新のNode.jsがインストールされる。
その後Serverlessをインストールするとエラーは出なかった🎉

まとめ

LinuxにNode.js入れる時はPermissionのためにnvm使ったほうがいい!