这本身毫无技术难度,写出来主要是因为这个问题大多数人并不在意,而当单位是物理隔离的内网时,这个问题又不得不解决。本文主要解决Windows下的环境迁移问题。

Rust离线环境迁移

下面是我找到的一种比较舒服的迁移方式。

设A为能联网的机器,B为内网机器。(下同)

在A上使用rustup来下载和管理Rust版本,把你需要的各个crate安装好,确保这个环境可以编译你的项目,如果不确定是否安装全crate,那只要这台机器的文件不删除,后面还可以按照这个办法更新。进到C:\Users\你的用户名文件夹下。这里有两个文件夹,一是.cargo,二是.rustup,把这两个文件夹全都压缩copy到B机器的相同文件夹下(用户名可以不一致)解压,把环境变量设好,确保cargo -V和rustup -V都可以正常显示版本。

然后在项目内你第一次编译的时候仍然会报错,说你dependencies没找到,这主要是因为cargo build的时候cargo发现cargo.lock内的信息和你cargo.toml指示的不一致,然后默认采用网络连接去下载对应的crate包。此时你需要cargo build --offline编译一次,这样就会生成新的cargo.lock,之后再用cargo build就不会出问题了。

Go环境迁移

Go的包默认也是安装在C:\Users\你的用户名下,仅有一个go,把这个文件夹放到B机器上的任意位置,在项目内设置Go Path包含这个目录即可。

PS:好久不写真正的技术内容,稍学些内容又不能写在这里,只好写一些比较冷门的小知识点,稍微帮助下他人,也帮我维持一种输出的状态