我想根据2017年2月22日提供的内容,在Cargo.toml的Rust项目中创建一个Cargo.lock文件.我需要使版本选择与特定日期发生的版本兼容.(不,在某个地方没有版本控制的Cargo.lock.)
我试过这个无济于事:
在.cargo/config中使用以下行:
[source.mycrates]
registry = "file:///path/to/crates.io-index" # contains old checkout
[source.crates-io]
replace-with = "mycrates"
Run Code Online (Sandbox Code Playgroud)然而,货物将Cargo.toml中的依赖关系解析为最新的可用,而不是指定结帐中的最新关联.
我怎么能及时扭曲Cargo的版本选择?
既然您说您已经尝试过克隆索引,那么我假设您仍然保留着它。为了其他读者的利益,该存储库似乎是在 Git 中维护的,并且可以从https://github.com/rust-lang/crates.io-index获取。
您需要告诉cargo运行,--frozen以便它不会接触网络,qv Cargo FAQ,如果它认为需要,它就会爆炸。如果它已经下载了东西,你也需要这样做cargo clean,否则就会破坏缓存。
如果您在结账时尚未获得所需的所有软件包,则还需要下载您感兴趣的特定版本。Dissecting Crates.io:Bare Minimum Mirror有一个解释,我将在此处进行总结以防链接失效。
config.json在 Crates 存储库的根目录中有用于下载软件包的 URL,官方认为这些 URL 不稳定,但现在可以使用。“gmjosack”使用的板条箱中的示例显示了下载它
libc的路径,基于in的密钥和发布时可用的版本。/api/v1/crates/libc/0.1.10/downloaddlhttps://crates.io/api/v1/cratesconfig.json
您可能需要编写下载脚本才能构建镜像。另请参阅:在 stackoverflow 上使用 Web 浏览器下载 Rust 包。
| 归档时间: |
|
| 查看次数: |
295 次 |
| 最近记录: |