vagrant虚拟机共享目录在windows宿主下的禁忌

问题背景

宿主环境:Windows10

开发环境:vagrant(ubuntu) 

操作目录:synced_folder (共享目录 )

执行命令:npm install

错误信息:

npm ERR! code ETXTBSY
npm ERR! errno -26
npm ERR! syscall rename
npm ERR! ETXTBSY: text file is busy, rename '/vagrant/parse-server-advanced/node_modules/cookie-signature/package.json.3666899342' -> '/vagrant/parse-server-advanced/node_modules/cookie-signature/package.json'

这就是一个文件权限的错误,因为client环境(vagrant box)对共享目录(synced_folder)中的文件操作权限不够

尝试解决

windows + vagrant (ubuntu) 开发

经常需要在  共享目录(shared_folder)中进行文件操作,包括但不限于:

  • 解压缩,如 tar xzf,unzip
    • 避免在共享目录中操作,到 vagrant(ubuntu) 非共享目录中操作

      • 否则会报错,因为tar包里面的内容可能是从linux环境打包来的,是无法正常在windows环境中解压缩,也就无法安全地在shared_folder中解压缩
  • 安装,如 npm install (本地安装,非 -g)
    • 在host环境(windows)中进行(这就需要host环境中也要装node)

    • 在client环境中非共享目录安装后,再挪到共享目录(mv)
      • vagrant@ganiks-ubuntu-trusty-64:~$ mv parse-server-advanced /vagrant/
        mv: cannot create symbolic link ‘/vagrant/parse-server-advanced/node_modules/parse-dashboard/node_modules/.bin/mime’: Protocol error
        mv: cannot create symbolic link ‘/vagrant/parse-server-advanced/node_modules/pg/node_modules/.bin/semver’: Protocol error

 

总结

总之,在windows机器上用vagrant

两者之间的 synced_folder 共享目录只能用于拷贝文件

千万不可在此目录中进行 npm install / tar xzvf 类操作;

 

如果一定要用 windows下的IDE如VSCode开发

  • 服务端代码
  • Vagrant虚拟机中的的代码(非共享目录)
    • 因为windows环境下实在无法正常 npm install 的项目,只能放在Linux服务端或者Linux虚拟机中
      • 如 crypto, ursa

可以尝试使用 VSCode + Sftp插件

 

相关问题

https://www.cnblogs.com/ganiks/p/Error-EACCES-permission-denied-symlink.html

https://www.cnblogs.com/ganiks/p/windows-install-cross-env-with-cnpm-instead-of-yarn-or-npm.html

转载于:https://www.cnblogs.com/ganiks/p/do-not-install-or-unzip-at-vagrant-synced-folder.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值