欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

win10通过samba实现在主机中开发虚拟机中编译

程序员文章站 2022-07-13 10:19:49
...

因为我是进行前端开发的,所谓的编译是指的是编译angular项目

公司的平台基于angular搭建了前端开发环境,开发的时候要开启一个类似angular中ng start的命令,所有的一切麻烦都是这个命令引起的。公司开发的不支持windows系统,而我使用的是win10,不想换mac,于是我就开始了折腾。。。

尝试1:使用win10的linux子系统wsl

那好啊,反正win10里面可以使用linux子系统。。。
先从win10 应用商店里面安装ubuntu 18.04版本,之后搭建公司的开发环境,最后跑起来:
win10通过samba实现在主机中开发虚拟机中编译
诚如此,则完美,
win10通过samba实现在主机中开发虚拟机中编译
不行啊,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中设置共享文件夹

win10通过samba实现在主机中开发虚拟机中编译

3.2 挂载

win10通过samba实现在主机中开发虚拟机中编译

  • 进入/mnt
  • 创建新文件夹rrx3
  • mount挂载设置中配置的共享文件夹rrx3
  • ls查看下,有了
    然后在linux中打开了编译功能,完美了。。。出现了在尝试1中同样的问题,CPU 100%。
    由此得到了结论,不管是wsl还是虚拟机中的linux访问windows的文件系统都会存在严重的性能问题

尝试4:在windows中访问虚拟机中的文件进行开发,在虚拟机中编译

既然CPU 100%的问题是因为在linux中编译windows系统中的文件引起的,那么我把文件放在虚拟机中,想办法在windows中的webstorm中打开就可以了吧。

4.1 使用samba在linux虚拟机中开启共享

  1. 安装samba
  2. 配置samba
    配置文件在/etc/samba/smb.conf,为了不必要的麻烦,可以用root来编辑,在末尾加上,

    [vm]
    path = /home/manny/
    browseable = yes
    writable = yes
    guest ok = yes

    我忘记之后需不需要重启服务了,反正实在不行就重启下虚拟机

  3. 在linux虚拟机的文件夹下执行:chmod -R 777 *

  4. 在windows中添加网络映射:windows + R 运行 – \10.0.0.5(10.0.0.5是我的虚拟机的ip地址)–看到如下所示的文件夹:win10通过samba实现在主机中开发虚拟机中编译然后右键,映射网络驱动器,选一个,比如Z,之后在windows的文件系统中看到了,如下图:win10通过samba实现在主机中开发虚拟机中编译
  5. 可以在webstorm中打开了,就像本地操作一样,也可以进行git的提交和push操作
  6. 然后就可以在linux中开启编译功能了,实现了在windows中使用webstorm开发虚拟机中的项目。

终于成功了

有些人使用ftp来实现,这种方法也不错,不过这样的话windows系统中还需要保存一份代码。

尝试5:在windows中使用ssh登录

继续完善尝试4中的部分,虽然在上面实现了在windows中使用webstorm编辑代码,在linux虚拟机中进行编译,但是有个缺点,终端窗口还得放在虚拟机中,如果能够在webstorm的terminal中直接操作就更好用了。
在win10的命令行中:
win10通过samba实现在主机中开发虚拟机中编译
原因是因为虚拟中少东系:
win10通过samba实现在主机中开发虚拟机中编译

好了,可以登陆了

尝试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

相关标签: win10 wsl