[Centos7]Vagrant上でnpm installを実行したら「EPROTO: protocol error, symlink」エラーが発生!解決策

[Centos7]Vagrant上でnpm installを実行したら「EPROTO: protocol error, symlink」エラーが発生!解決策
2021年05月24日2023年10月10日

Windowsに設置してあるVagrant上にNode.jsをインストールしていざ「npm install」を実行したらシンボリックリンク系のエラーが発生しました。

発生したエラーを解決する

nmp installを実行したら下記のようなエラーが発生。

$ npm install
npm WARN dj No description
npm WARN dj No repository field.
npm WARN dj No license field.

npm ERR! code EPROTO
npm ERR! syscall symlink
npm ERR! path ../mkdirp/bin/cmd.js
npm ERR! dest /vagrant_data/work/dj/node_modules/.bin/mkdirp
npm ERR! errno -71
npm ERR! EPROTO: protocol error, symlink '../mkdirp/bin/cmd.js' -> '/vagrant_data/work/dj/node_modules/.bin/mkdirp'

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-05-21T03_16_31_577Z-debug.log

どうやら「--no-bin-links」のオプションを付けると解決するようです。

$ npm install --no-bin-links
> node-sass@5.0.0 install /vagrant_data/work/dj/node_modules/node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v5.0.0/linux-x64-64_binding.node
Download complete..] - :
Binary saved to /vagrant_data/work/dj/node_modules/node-sass/vendor/linux-x64-64/binding.node
Caching binary to /home/vagrant/.npm/node-sass/5.0.0/linux-x64-64_binding.node

> node-sass@5.0.0 postinstall /vagrant_data/work/dj/node_modules/node-sass
> node scripts/build.js

Binary found at /vagrant_data/work/dj/node_modules/node-sass/vendor/linux-x64-64/binding.node
Testing binary
Binary is fine
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN dj No description
npm WARN dj No repository field.
npm WARN dj No license field.

added 2 packages from 2 contributors and audited 195 packages in 6.039s

7 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

--no-bin-linksオプションを付けることで、npm install実行時にシンボリックリンクを作成しなくなります。

Virtual Boxでは共有フォルダにシンボリックリンクが作成できないため、オプションを指定してあげる必要があります。

コメント

コメントを残す

お名前(任意)
コメント:新規