win10通过samba实现在主机中开发虚拟机中编译
因为我是进行前端开发的,所谓的编译是指的是编译angular项目
公司的平台基于angular搭建了前端开发环境,开发的时候要开启一个类似angular中ng start的命令,所有的一切麻烦都是这个命令引起的。公司开发的不支持windows系统,而我使用的是win10,不想换mac,于是我就开始了折腾。。。
尝试1:使用win10的linux子系统wsl
那好啊,反正win10里面可以使用linux子系统。。。
先从win10 应用商店里面安装ubuntu 18.04版本,之后搭建公司的开发环境,最后跑起来:
诚如此,则完美,
不行啊,wsl有严重的问题,开发的时候编译angular导致cpu飙升的100%,并且根本就编译不出来结果,浏览器根本就打不开本地的网页。
我在网上查了查,wsl访问win10 的文件系统的时候会有很大的I/O性能问题,很多地方给出的解决方案是关掉win10自带的defender,我关掉了之后还是不起作用。
失败
尝试2:完全在ubuntu虚拟机中开发
没办法了,不想换mac,还得继续折腾。使用Oracle VM VirtualBox安装了个ubuntu 虚拟机。
这中方法确实可以实现,没有什么大问题,但是我最终还是放弃了,因为用不习惯ubuntu,单单是为了把输入法调成中文就费了好大的劲,当然对于高手来说这很简单了。总感觉有这么好用的win10不用偏偏用虚拟机有点怪怪的,各种操作都不顺手
放弃
尝试3:在linux虚拟机中访问windows的文件并编译
希望在windows中使用webstorm进行开发,在linux虚拟机中进行编译。
3.1 在vm virtualbox中设置共享文件夹
3.2 挂载
- 进入/mnt
- 创建新文件夹rrx3
- mount挂载设置中配置的共享文件夹rrx3
- ls查看下,有了
然后在linux中打开了编译功能,完美了。。。出现了在尝试1中同样的问题,CPU 100%。
由此得到了结论,不管是wsl还是虚拟机中的linux访问windows的文件系统都会存在严重的性能问题
尝试4:在windows中访问虚拟机中的文件进行开发,在虚拟机中编译
既然CPU 100%的问题是因为在linux中编译windows系统中的文件引起的,那么我把文件放在虚拟机中,想办法在windows中的webstorm中打开就可以了吧。
4.1 使用samba在linux虚拟机中开启共享
- 安装samba
-
配置samba
配置文件在/etc/samba/smb.conf,为了不必要的麻烦,可以用root来编辑,在末尾加上,[vm] path = /home/manny/ browseable = yes writable = yes guest ok = yes
我忘记之后需不需要重启服务了,反正实在不行就重启下虚拟机
在linux虚拟机的文件夹下执行:chmod -R 777 *
- 在windows中添加网络映射:windows + R 运行 – \10.0.0.5(10.0.0.5是我的虚拟机的ip地址)–看到如下所示的文件夹:然后右键,映射网络驱动器,选一个,比如Z,之后在windows的文件系统中看到了,如下图:
- 可以在webstorm中打开了,就像本地操作一样,也可以进行git的提交和push操作
- 然后就可以在linux中开启编译功能了,实现了在windows中使用webstorm开发虚拟机中的项目。
终于成功了
有些人使用ftp来实现,这种方法也不错,不过这样的话windows系统中还需要保存一份代码。
尝试5:在windows中使用ssh登录
继续完善尝试4中的部分,虽然在上面实现了在windows中使用webstorm编辑代码,在linux虚拟机中进行编译,但是有个缺点,终端窗口还得放在虚拟机中,如果能够在webstorm的terminal中直接操作就更好用了。
在win10的命令行中:
原因是因为虚拟中少东系:
好了,可以登陆了
尝试6
在网上看到很多用phpstorm进行远程开发的,也还有使用ftp把文件同步到远程的,我想了想,这种方式对我不适用,因为我在windows下安装项目的npm依赖的时候报错,使用wsl安装的时候有时候也报.staging文件找不到,换句话说就是必须在真正的linux环境下才能完整安装依赖。但是如果这一步通过的话,就可以实现在把项目文件放在windows系统上,在windows上使用webstorm进行开发,代码修改后同步到linux虚拟机中进行编译了,也很好。
参考文献:
https://blog.csdn.net/u013963380/article/details/72599793
https://blog.csdn.net/wszll_Alex/article/details/51510655?locationNum=11&fps=1