WSN课程实验指南:一种基于「原生,启动!」的环境配置方法
前言
这个实验老师推荐的方式是用虚拟机。但你要知道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 | cd / |
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)时,要选正确的版本。

那么好,让我们回到pdf

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

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

也就是说我们把版本代号也改成trusty就可以了对吧
对,但不完全对,因为这个镜像停留在了2014年。。支持的版本只有

所以没办法我只能用了
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu lucid main
同样,如果你爱折腾。。。
启动!
要完成所有pdf的前置内容。
众所周知,这个实验大抵是要写代码的,所以一个好用的文本编辑器很重要。那编辑器无非就分这么几派
- 传统派:vim天下无敌
- 保守派:认为vim太保守而选择nano
- 极端的保守派,也就是我:vim和nano都太保守了,我用vscode。。。
VSCode+WSL
插件:反正就是那几个,具体是哪个我也不知道

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

Clion+WSL
其实我是一个JB吹,但远程开发这个东西jb做的还真没那么好用,jb是做ide的,他需要在远程机上也装一个ide,clion的话大概一个多g,反正我是不敢在服务器上装,但wsl就无所谓了,我问了我那块2t固态他说没意见,我也问了我的126kf和48g内存,他们都说没问题。。
所以可能大概把ide配好之后的话做开发会更方便?问题是我不太懂c的环境配置,太蛋疼了,更何况还是nesC,我听都没听过。

基本上就是这个界面去新建项目,然后就自动安装了,倒是没什么要额外操作的。唯一一点就是会报一个错,巨长,巨吓人,就那种超出屏幕宽度的报错。
倒也好解决。报错的内容是
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,有些东西记不清了,也不知道下周上实验还是上课。



