前言

这个实验老师推荐的方式是用虚拟机。但你要知道Ubuntu14是10年前的系统,那个ui配合上虚拟机,再加上整个实验都在终端里进行,效果不能说是差强人意也是没眼看。

作为高贵的Windows11用户,岂有不用wsl的道理?

所以什么都不说了,直接生,启动!

启动之前

因为wsl是很久之前装的了,具体的也不记得。应该是直接看微软的那篇快速开始就可以了。出了问题就问知乎,反正都能解决掉。这里列一下需要的东西。

  • WSL2(必须是2,不懂的查百度)
  • Ubuntu14.04的tar包(见下文)
  • Clion和VSCode。装好远程的插件别用vim或者nano折磨自己

关于tar包

如果说很不幸,你已经完成了虚拟机环境的配置,然后想转战wsl,难道要重新配置吗?并不。下面是迁移的指南。

参考文章:自制wsl centos7 镜像并导入到wsl - 知乎 (zhihu.com)

还有一点想说的是,我其实不知道怎么用iso镜像(https://releases.ubuntu.com/14.04/)装wsl,官方的镜像里好像是没有这么老的版本的所以需要自己查一下。甚至说找一个配完环境的室友,把他的系统tar一下,就什么都不用干了。

如果你不知道什么是tar包可以理解成一种压缩格式,Linux里面很常用。我们要做的就是把一个系统打包,然后wsl就支持用这种格式导入系统了。

打包:

这是参考里给的命令但是有点小问题,这里再解释一下

1
2
cd  /
tar -cvf ./centos.tar ./ --exclude=centos.tar --exclude=centos.tar --exclude=./proc*

cd / 回到根目录,因为要打包所有的文件

tar -cvf <包的名字> <打包内容>打包的命令

--exclude=centos.tar 如果说之前打过包了那就不要把这个包打进包里,很好理解

--exclude=./proc* 一些动态的内容,没有必要打包

所以说,打包的最简命令应该是。

1
tar -cvf ./ubuntu14.tar ./ --exclude=./proc*

这样就可以了

我记得最后有报错,但是包已经打好了,也没什么问题。

导包:

先装好wsl

1
wsl --import <系统(分发)名> <子系统位置> <tar包位置> --version 2

系统名就是以后启动时作为区分的名字

子系统位置就是系统保存的位置(找个空间大的盘存)

tar包就是刚刚那个包

--version 2 表示使用wsl2,但好像已经默认了

参考命令不用抄路径:

1
wsl --import ubuntu14 G:\WindowsSubsystemLinux\ubuntu1404 G:\WindowsSubsystemLinux\ubuntu14.tar --version 2

启动:

1
wsl -d ubuntu14

-d distribution,分发,就是给每个子系统起的名

pdf里面一些想说的

为什么非要14.04

嗯。。我曾经头铁用最新的ubuntu试了一下,大概的问题就是新的Ubuntu要求对镜像源进行签名验证(大概)然后我们用了一个老的源,我也找不到验证的办法,所以就算了。如果真的爱折腾那随意

关于镜像源

pdf里给的镜像源真的抽象,首先要补充一个我觉得很重要的点:

我们都知道Linux时有版本的,那也就是说,Linux的镜像源也需要有版本进行区分。

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse

用清华源的这个举例,在连接后面紧跟的这个trusty表示的就是Linux的版本。所以说我们用清华源(ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror)时,要选正确的版本。

Untitled

那么好,让我们回到pdf

Untitled

这居然同时添加三个版本的镜像。。我只能说

Untitled

这里给一张代号版本的对应表

Untitled

也就是说我们把版本代号也改成trusty就可以了对吧

对,但不完全对,因为这个镜像停留在了2014年。。支持的版本只有

Untitled

所以没办法我只能用了

deb http://tinyos.stanford.edu/tinyos/dists/ubuntu lucid main

同样,如果你爱折腾。。。


启动!

要完成所有pdf的前置内容。

众所周知,这个实验大抵是要写代码的,所以一个好用的文本编辑器很重要。那编辑器无非就分这么几派

  • 传统派:vim天下无敌
  • 保守派:认为vim太保守而选择nano
  • 极端的保守派,也就是我:vim和nano都太保守了,我用vscode。。。

VSCode+WSL

插件:反正就是那几个,具体是哪个我也不知道

Untitled

反正装完了之后连接wsl就ok了

Untitled

Clion+WSL

其实我是一个JB吹,但远程开发这个东西jb做的还真没那么好用,jb是做ide的,他需要在远程机上也装一个ide,clion的话大概一个多g,反正我是不敢在服务器上装,但wsl就无所谓了,我问了我那块2t固态他说没意见,我也问了我的126kf和48g内存,他们都说没问题。。

所以可能大概把ide配好之后的话做开发会更方便?问题是我不太懂c的环境配置,太蛋疼了,更何况还是nesC,我听都没听过。

Untitled

基本上就是这个界面去新建项目,然后就自动安装了,倒是没什么要额外操作的。唯一一点就是会报一个错,巨长,巨吓人,就那种超出屏幕宽度的报错。

倒也好解决。报错的内容是

Required tools are missing: Required tools are missing: realpath (SHELL=*** PATH=***)

其实就是少了realpath这个包,sudo apt install realpath 轻松秒杀

最后

后面我应该是去配置clion的环境,大概,如果需要的话。但你要是没找到下一篇文章那就说明去配环境不值得,就用vscode写代码然后terminal运行好了。

配环境这节课应该是4月15号,4/22这周讲了课,没听。4/29这周放假了,没课。写这篇的时间是5/4,有些东西记不清了,也不知道下周上实验还是上课。