Serverless Frameworkやnode-gypをインストールする際に、Permission Deniedというエラーが出力され、モジュールのインストールに失敗する場合があります。
prebuild-install WARN install EACCES: permission denied, access '/root/.npm'
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/serverless/node_modules/snappy/build'
gyp ERR! System Linux 5.4.0-86-generic
gyp ERR! command "/usr/bin/node" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/serverless/node_modules/snappy
gyp ERR! node -v v10.19.0
gyp ERR! node-gyp -v v6.1.0
gyp ERR! not ok
そのような場合は、以下のように --unsafe-perm
をオプションに追加することで、インストールが可能になります。
sudo npm install -g serverless --unsafe-perm
ちなみに、上記のようなエラーが発生するケースとして、rootで npm install -g
を実行した場合が挙げられます。rootでnpmを実行することはセキュリティやOSを含めたシステム全体の安定性の観点から出来れば避けたいものですが、しかし、モジュールの制約など、事情によりrootでパッケージをインストールせざるを得ないケースもあると思います。
npmでモジュールをインストールする際にPermission deniedになって困っている方は、必要性を判断のうえ、お試しください。