在开发过程中,有时候我们会遇到没有网络的离线环境,这时候要安装配置一些开发工具就比较麻烦了。今天咱们就来聊聊在离线环境下怎么安装配置Cargo,也就是Rust的包管理工具,同时还会讲讲怎么下载Rust离线包,以及搭建Cargo本地依赖源。

一、应用场景

在很多企业或者特殊的开发环境中,出于安全或者其他方面的考虑,是不允许设备联网的。比如说一些金融机构的内部开发环境,为了保证数据安全,会把开发设备放在一个封闭的网络环境里。还有一些军工企业的项目,对网络安全要求极高,也会采用离线开发的方式。在这些离线环境下,如果我们要使用Rust进行开发,就需要掌握离线安装配置Cargo的方法。

二、Rust离线包下载

2.1 选择下载源

首先,我们要去有网的环境下下载Rust离线包。官方的下载地址是https://static.rust-lang.org/dist/ ,在这里可以找到各种版本的Rust安装包。不过有时候官方下载速度可能比较慢,我们也可以选择国内的一些镜像源,比如清华大学的镜像源https://mirrors.tuna.tsinghua.edu.cn/rustup/dist/

2.2 下载适合的版本

根据自己的操作系统和需求,选择合适的Rust版本进行下载。比如我用的是Windows 64位系统,就需要下载rust-1.67.1-x86_64-pc-windows-msvc.msi 这样的安装包。这里的“1.67.1”是版本号,“x86_64”表示64位系统,“pc-windows-msvc”表示是Windows系统下使用微软Visual C++编译器的版本。

2.3 示例说明(Shell技术栈)

# 如果使用wget命令从清华大学镜像源下载Rust 1.67.1版本的Windows 64位安装包
wget https://mirrors.tuna.tsinghua.edu.cn/rustup/dist/x86_64-pc-windows-msvc/rust-1.67.1-x86_64-pc-windows-msvc.msi

三、Rust离线安装

等我们把离线包下载好之后,就可以把它复制到离线环境的设备上进行安装了。

3.1 安装步骤(以Windows为例)

双击下载好的.msi安装包,然后按照安装向导一步一步来。在安装过程中,会有一些选项让我们选择,比如安装路径等。一般来说,使用默认的安装路径就可以了。安装完成之后,我们还需要配置一下环境变量。在系统的环境变量里,找到Path变量,把Rust的安装目录下的bin文件夹路径添加进去。比如我的安装路径是C:\Program Files\Rust\bin ,就把这个路径添加到Path变量里。

3.2 示例说明(PowerShell技术栈)

# 查看当前系统的环境变量
Get-Item -Path Env:Path

# 把Rust的bin目录添加到环境变量中
$env:Path += ";C:\Program Files\Rust\bin"

# 保存环境变量的修改,这里需要管理员权限
[System.Environment]::SetEnvironmentVariable("Path", $env:Path, [System.EnvironmentVariableTarget]::Machine)

四、Cargo本地依赖源搭建

Cargo默认是从官方的crates.io源下载依赖包的,但是在离线环境下我们没办法访问这个源,所以需要搭建一个本地依赖源。

4.1 准备本地依赖源

我们可以在有网的环境下,把项目需要的依赖包都下载下来。首先创建一个目录,比如cargo-offline 作为本地依赖源的根目录。然后在项目的根目录下执行以下命令:

# 示例使用Shell技术栈
# 创建本地依赖源根目录
mkdir cargo-offline

# 进入项目根目录
cd my-rust-project

# 把项目依赖的包下载到本地
cargo vendor --locked cargo-offline

这里的cargo vendor --locked 命令会根据项目的Cargo.lock文件,把所有依赖包下载到指定的cargo-offline目录下。

4.2 配置Cargo使用本地依赖源

在项目的根目录下创建一个.cargo文件夹,然后在这个文件夹里创建一个config.toml文件,内容如下:

# 示例使用TOML技术栈
[source.crates-io]
replace-with = "vendored-sources"

[source.vendored-sources]
directory = "../cargo-offline"

这段配置的意思是,把默认的crates.io源替换成我们本地的依赖源。

4.3 验证配置

在项目根目录下执行cargo build命令,如果能够正常编译项目,说明本地依赖源搭建成功了。

五、技术优缺点

5.1 优点

  • 安全性高:在离线环境下进行开发,避免了联网带来的安全风险,比如被攻击、数据泄露等问题。
  • 稳定性好:一旦本地依赖源搭建好,不受网络波动的影响,每次编译项目都能稳定地使用本地的依赖包。
  • 节省网络资源:不需要每次都从网络上下载依赖包,对于一些网络带宽有限的环境来说很友好。

5.2 缺点

  • 依赖更新麻烦:如果项目需要更新依赖包,就需要在有网的环境下重新下载,然后再复制到离线环境中。
  • 前期准备工作多:需要在有网的环境下下载Rust离线包和项目依赖包,并且要搭建本地依赖源,过程相对复杂。

六、注意事项

  • 版本匹配:下载的Rust离线包版本要和项目要求的版本一致,否则可能会出现编译错误。
  • 依赖完整性:在使用cargo vendor命令下载依赖包时,要确保Cargo.lock文件的完整性,否则可能会导致部分依赖包下载失败。
  • 环境变量配置:安装Rust之后,一定要正确配置环境变量,否则在命令行里可能无法使用rustccargo命令。

七、文章总结

通过以上的步骤,我们就可以在离线环境下成功安装配置Cargo,并且搭建好本地依赖源。首先在有网的环境下下载Rust离线包和项目依赖包,然后把这些文件复制到离线环境中进行安装和配置。虽然整个过程相对复杂一些,但是掌握了方法之后,在离线环境下使用Rust进行开发就变得可行了。希望这篇文章能帮助到那些需要在离线环境下进行Rust开发的朋友们。