记一次Windows使用virtualbox作为容器作为开发环境运行idea,致每一位windows下的开发者

引言

最近在找工作,需要从浩如烟海的计算机知识中加载完整的jdk进脑子,因此要在我的个人电脑上配置开发环境,但我不想我的个人电脑变得臃肿

为什么在windows下开发需要容器

windows实在是一个优秀的用户系统,而远非开发环境,不管是java开发的gradle或者maven都会在C盘用户文件夹下载大量的依赖jar,python3.12的pip的安装包也在appdata下,go的包…前端的缓存都往C盘挤,经常开发的小伙伴都知道C盘爆满是怎么个痛苦。这时候我们往往八仙过海各显神通:

空间不足我就让它足吧

  1. C盘扩容(小白使用的方法)
    好处:快速方便。缺点:扩了还是不够,或者扩的时候不知道从哪里腾空间

PS:不是,已经2次了,怎么它还要啊

  1. 建立文件链接(我所用的早期方法,参考[C盘爆满,python pip无法安装应用]
    优点:一劳永逸解决某个不断变大的开发依赖储存文件夹,且不用去修改语言的默认配置,比如修改pip的默认依赖安装地址,比如配置maven的m2配置
    缺点:C盘备份的时候会把依赖包地址也镜像进去,用git bash rm的时候担心有传送门(隐藏的文件映射)把重要文件删除,也需要针对一个个自增的开发工具文件夹做针对处理也比较麻烦

  2. windows 沙盒,这是一个windows的测试沙盒
    在这里插入图片描述

    优点: 不影响本地文件
    缺点: 无法持久化开发环境,用后既毁

  3. sandboxie-plus,老牌强劲沙盒,适合用作一些windows软件的依附于主机的隔离虚拟环境
    优点:直接虚拟目录映射,类似linux的docker,用层叠的方式储存沙盒中安装的开发环境,就算安装在C盘,实际上映射也在沙盒的隔离文件夹里,不会对本地系统进行干扰
    缺点: 兼容性不足,idea在沙盒中安装后无法启动,需要收费版可能才行。使用的时候还是不够方便

TNN的我直接不用windows开发了,直接VirtualBox安装Linux作为开发环境

  1. virtualbox直使用隔离的系统做为开发环境
    优点: 不影响当前windows系统,与你的用户系统隔离,随便鼓捣
    缺点:磁盘占用(毕竟又安装了一个系统),需要一定安装成本,同时系统也会需要磁盘扩容的一天

为什么要用virtualbox作为开发环境

经过多年window下开发经验,开发一定会把你的系统变得十分臃肿,有时候甚至不知道新特性会吃掉你的那一部分空间,卸载会留下哪些残留。因此我推荐将用户环境和开发环境隔离开来。
但,使用virtualbox隔离容易,但怎么将他们连接起来呢,让我们在用户环境下拥有开发环境的体验。有的

  1. ssh 永远的神
  2. http
  3. https(需要证书)

正文—请选择你的流派

一、vscode

vscode可以在linux上部署code-server通过web访问,不过不推荐,部分插件受限,而且需要https才能使用pwa获取原生的体验(不会和浏览器有按键冲突),主要推荐本地安装vscode,使用remote插件进行远端开发

  1. 设定: 你的系统是windows7以上,安装了virtualbox,virtualbox安装了linux子系统(rocky linux、ubuntu、deepin)

  2. virtualbox中的linux安装sshd,作为服务启动

  3. 通过双网卡的方式或者端口转发(推荐,方便)的方式使主机(你的windows系统能ssh登录linux)
    在这里插入图片描述

  4. windows本地安装vscode,只装ssh remote插件,直接连上虚拟机或者云端的开发环境,你的所有操作都在操作远端开发环境。

下面是在复述插件的用法,可以直接看插件的说明

  1. 配置windows的ssh配置并连接
    在这里插入图片描述
Host VBoxLinux
  HostName 127.0.0.1
  User biewang
  Port 8022

这是定义了ssh的服务器配置,也就是virtualbox的linux子系统的sshd服务开放的22端口,在上面操作中我把他转发到了本机的8022端口
6. 在windows上复制本地的公钥到linux子系统上配置免密登录,如果本地没有钥匙对的化需要ssh-keygen生成

ssh-copy-id VBoxLinux
  1. 在插件刷新加载ssh配置后连接
    在这里插入图片描述

二、IDEA、intellij系列、jetbrains系列

这个流派有多种尝试可以选择:

  1. projector ,类似vscodecode-server方案,以web服务(http/https)的方式提供web编辑器,在https时可以通过chromePWA功能得到最大增强
# 安装docker然后
 docker run --name idea -p 8887:8887 -it registry.jetbrains.team/p/prj/containers/projector-idea-c

已经不维护了,我尝试了一下idea貌似是2019版的,现在变成gateway了,劝君少鼓捣
2. gateway,类似vscoderemote插件单独安装,但我试过了,服务器中的中文乱码,无法解决(两个方案都没有vscode的好啊。。)

怎么办没有方案了么

三、通用系列

ssh永远的神!
可以发现vscode和intellij都尝试了http、https、ssh这三种通信方式,其中http不安全、https配置繁琐、所以使用ssh的vscode-remote是最完美的选择。而idea的ssh方案gateway尚在襁褓中,那么,我们能否直接使用ssh呢?ssh+X11杀死了比赛,当然其缺点是带宽占用稍高(5G时代、局域网下,小case了)

  1. windows: 下载安装VcxSrv https://sourceforge.net/projects/vcxsrv/
  2. linux子系统: 安装openssh-server也就是sshd服务,并开启X11Forward配置
  3. windows: 配置window下ssh的配置
    C:\Users\[!!你的用户名]\.ssh\config
# 自定义你的子系统名字
Host VBoxLinux
  # ip,因为我是转发到了主机的8022端口,所以用主机回环ip
  HostName 127.0.0.1
  User biewang
  Port 8022
  # 以下两项很重要,开启X11的连接
  ForwardX11 yes
  ForwardX11Trusted yes
  # 以下配置关联你的VcXsrv
  XAuthLocation D:/Progra~1/VcXsrv/xauth.exe
  1. 打开VcxSrv作为windows的X11渲染器
    在这里插入图片描述
    这个10是任意的,作为变量后面会用到,记住就好
    在这里插入图片描述
    在这里插入图片描述
  2. windows: 打开powershell
# 这里的10就是对应VcxSrv的显示数
$Env:DISPLAY = "127.0.0.1:10"
# VboxLinux在上面有配置,所以我们不用再加参数,如果需要免密登录请自行处理
ssh VBoxLinux
# 这时候已经进入linux了,任意启动gui程序,比如idea,在ubuntu应用商店安装后他的启动命令是intellij-idea-community
biewang@biewang-VirtualBox:~$ intellij-idea-community

好了,现在咱们在没有开发环境的window下,远程启动了linux上的idea显示在本地进行开发,通过终端面板也可以操作linux,可以修改idea热键为window下的热键
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值