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 を参照してください。
nvmのインストール後、 nvm install node
で最新のNode.jsがインストールされる。
その後Serverlessをインストールするとエラーは出なかった🎉
まとめ
LinuxにNode.js入れる時はPermissionのためにnvm使ったほうがいい!