存档

‘工具’ 分类的存档

如何让 WSL 支持多个独立的 Ubuntu 实例

2022年5月11日 没有评论

在 win10/win11 系统中,微软已经支持了 WSL,用户可以先安装 sub system for Linux 组件,然后通过 Store 来下载自己感兴趣的 Linux 镜像来安装享用。

但是,这么做有一个问题就是对于同一个类型,例如 Ubuntu 20.04,就只有一个实例,对于普通用户来说,不能添加多个实例。

那为什么会有多实例的需求?很简单,场景需求不同。例如,有时候想临时折腾下某个功能,然后完事了再还原回去,也就是类似快照的功能。还比如说,针对 .Net 和 Java 设置不同的环境,各自编译各自的,互不影响,系统也简洁,有点docker的味道。

微软的答案就是使用 wsl 命令,可以轻松导出或者导入发行版的副本。

首先,可以使用 wsl –list 命令,获取到当前系统上可用的实例。
wsl –export Ubuntu ubuntu.tar // 导出 Ubuntu 实例,并保持为 ubuntu.tar 文件
wsl –import Ubuntu-java .\Ubuntu-java ubuntu.tar // 导入 ubuntu.tar 文件,生成新的实例,新名称为 Ubuntu-java,新实例的文件夹为当前目录
wsl -d Ubuntu-java //启动新的实例

当然,wsl 还有 WSL 1 和 WSL 2的区别,大家可以根据自己的偏好使用即可。

像作者“衣服自己洗”这么懒的人,怎么可能用命令行呢,不方便不说,参数什么不好记。经过一番搜索,最后锁定了 “WSL Manager”这么一个开源工具,可视化操作,还是比较爽的。

经过试用,发现使用这个工具进行导出导入操作时,时间比使用命令行的方式要长些,都快要放弃的时候,界面显示操作成功。所以大家可以结合起来使用,日常的启动停止等操作就用 GUI工具,偶尔的导出导入操作就用命令行。

有个事情需要提一句,WSL 和虚拟机之类的有冲突导致蓝屏,这个是和 Hyper-V 有关,目前来看只能二选一,无解。

分类: 工具 标签:

PhantomJS

2019年4月19日 没有评论

最近一直都在用一个网上免费的xx服务,但是其账号会

最近一直都在用一个网上免费的xx服务,但是其账号会更新,所以就需要时不时地访问其页面以获取更新的账号。这不,突然就无法访问了。我用海外的服务器访问了下,发现还是可以访问的。但是这个网页的内容是用 js 动态生成的,这样就无法简单地查看了。

所以就想有没有什么工具可以获取网页的dom树,刚开始时搜索了下命令行的浏览器,后来发现不能满足要求,因为我需要点击页面里的一个按钮以复制账号信息。后来换了个思路,如果可以生成网页截图的话,起码我可以手动的通过扫描二维码来添加账号。

后来在网上发现了这个工具:PhantomJS,按照官网说法,它可以生成网页快照,辅助做一些自动化测试的工作。

简单扫描了下示例代码,在 example 目录下,恰好就有一个现成的例子(rasterize.js),调用也很简单,例如 .\phantomjs.exe ..\examples\rasterize.js https://www.baidu.com/ image.png 1920px。对于最后一个参数,需要多说一句,官方的示例运行会报错(ReferenceError: Strict mode forbids implicit creation of global property ‘pageWidth’),在代码的开始部分添加 pageWidth和pageHeight定义即可。

海外的服务器么,自然会有另外一个问题就是对于中文的支持,apt-get install xfonts-* 完事。

最后看到了生成的截图,上面说如果无法访问,就使用 IP 代替等等,于是添加了一个host解析,终于浏览器可以正常访问了。

回到需求本身上来,后续看看是否可以用PhantomJS作为监控,每当更新了账号信息时就主动通知我。

分类: 一句话, 工具 标签: