gpt4 book ai didi

rust - 如何在离线状态下使用 Cargo 构建项目?

转载 作者:行者123 更新时间:2023-11-29 08:03:31 66 4
gpt4 key购买 nike

我正在通过使用 rand crate 创建小程序来练习 Rust (1.36)。但问题是,每当我使用 cargo new 创建新项目,然后在 cargo.toml 中添加 rand 依赖项时。它连接到互联网并再次下载相同的 rand 包。

与 Python 不同,已安装的包会进入 site_package 文件夹,并可供任何程序导入/使用。不需要重新下载。

我的问题是,如何让 cargo 寻找已经安装的本地 crate 而不是重新下载?

最佳答案

即使在现代 Python 中,也不会只使用全局可用的 site_packages 目录并“污染”全局可用的包,而是使用 virtual environments为每个项目维护适当的版本控制——类似于 cargo 所做的。

使用 cargo,一旦所有的包都被下载并在项目中明确指定了它们的版本,就可以通过新的--offline flag while one compiles one's project, in which case cargo 在不访问网络的情况下运行:

$ cargo build --offline

话虽这么说,做你描述的事情当然是完全可能的:

  1. 创建一个目录,存放依赖项:
    $ mkdir offline_resources
    $ cd offline_resources
  2. 下载你需要的版本库并构建它(这是你需要使用网络的最后一点):
    $ git clone https://github.com/rust-random/rand.git
    $ cd rand
    $ cargo build
  3. 创建一个新项目:
    $ cd ../..
    $ cargo new use_offline
    $ cd use_offline
  4. 编辑 Cargo.toml:
    [dependencies]
    rand = { path="../offline_resources/rand", version="0.7.0" }
  5. 构建您的项目:
    $ cargo build --offline
  6. 按照步骤 3 到 5 创建另一个项目,该项目将使用相同的 rand 依赖项。

关于rust - 如何在离线状态下使用 Cargo 构建项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57336771/

66 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com