安装教程 Linux
我会在闲暇时间来分享一些Rust的学习体会,内容尽可能是时下最新的,也欢迎各位来与我一起交流,内容喜欢的话可以点赞关注我❤️️QQ截图20210224103907.png

✏️ 前言

之前写过一篇如何搭建Rust开发环境的文章,里面提到了可以用WSL2来搭建一个类Linux的环境。
不过WSL2本身就存在着比较多的一些局限,比如说不能用perf这样的性能分析工具(我之前有过做火焰图的想法,可惜WSL2并不允许我这样做)。然后WSL1我一直觉得很尴尬的一件事情是它Rustup要配一个环境变量才能起起来…具体原因我从来没调查明白过,也经常忘记是哪个变量。

Multipass就解决了这些繁琐的事情,它是一个轻量级的Ubuntu虚拟机,能够非常快速的在任何系统上准备好Ubuntu系统。
我是一个比较坚定的Windows用户,因为Windows能做到的事情应该来说更加的全面,而在需要同步的Linux生产环境时,这方面的选择也是越来越多,越来越好。

我的博文一直会是我纯手工撰写的,但是目前来说很多时候大部分问题,包括我自己解决的时候也是在网上找到的,只是我找的时候是没有帮助的,我想我的博文还是最基本的是帮各位快速定位到解决方法,而不是充字数。
所以能通过给链接解决的事情我基本不会在博文里在讲一遍,最多就是给点提示和说明,各位千万不要觉得我偷懒。

这篇文章保证Multipass能做到的

  • 一个运行在Hyper-v上完整的Ubuntu x86_64操作系统
  • 可以用于VsCode远程开发的SSH远程连接
  • 原生的远程桌面连接

**

这篇文章不保证Multipass能做到的

  • 实例使用宿主机的科学上网工具(这个事情很**,我也是最近才发现的,似乎跟你用的工具有关,反正我日常用的不行…注意这个其实是hyper-v的问题,似乎hyper-v上的实例都会有,比如WSL也会)

**

可能需要你提前准备的

  • 下载镜像时可能需要使用科学上网工具

**

📦 安装Multipass并启动实例

这部分可以通过阅读官方安装指引完成,指引中我们执行需要做两步:

  1. 在Windows上安装Multipass
  2. 启动LTS实例,也就是指引中的multipass launch --name foo

对于2这一步,我们需要加一些参数来自定义我们实例的配置,默认的实例(单核1G,容量5G)我们肯定是不够用的,这里参考launch的doc,我现在用的实例是这么配置的:

  1. multipass launch --name multi-ubuntu --cpus 4 --disk 70G --mem 8G 20.04

disk我搞的70G其实已经很大了,一般来说没这个必要。

💾 配置SSH

安装完成后可以通过multipass shell <instance>来访问你的实例,但是SSH是不能用的,这样子不能用VsCode的SSH Remote了,所以我们可以去改一下SSH的配置。

在此之前可以用sudo passwd root先把root的密码设置一下,然后su进入root。

  1. vim /etc/ssh/sshd_config

进入vim以后我们只要改两个地方:

  1. PermitRootLogin yes # 位于34行
  2. PasswordAuthentication yes # 位于58行

:wq保存之后,我们通过service ssh restart(这条不好用试一下service sshd restart,我有点不记得了,可以评论里提醒我一下)重启ssh服务,接下来就可以用root密码登录实例了,这里注意一下实例的地址,就是.mshome.net,因为实例的ip每次启动都会变的,所以通过这个域名来连接才能保证每次连接成功。

之后可以配置一个免密登录,一般来说我们用github的时候本机都有一个ssh_key的,所以这里我默认大家都有了。
我们把公钥复制到实例:

  1. scp C:\Users\<user>/.ssh/id_rsa.pub root@<instance>.mshome.net:~/tmp.pub

然后把tmp.pub放到认证目录下:

  1. ssh root@multi-ubuntu.mshome.net "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"

接下来就可以免密以root身份登录实例了~

🌌 安装并连接远程桌面

这部分我提供的是在官方论坛里找到的官方教程,我还试过VNC的,真心不如直接用微软远程桌面的好,所以我很负责任的就安利这个教程。

如果你想要一个独立的图形窗口,可以看这里,同样也是官方的(还是官方更靠谱)。