我需要从一个生 rust 的货物替代注册表迁移(即 * 不是 * crates.io)到另一个(不相关的)。许多crate已经发布在当前的备用注册表中,其中许多都依赖于crates.io和备用注册表(通过Cargo.toml中的registry = "..."键)。是否有定义的方法将板条箱从第一个替代注册表迁移到第二个注册表?如果不是,那么这种迁移的最佳方法是什么?
Cargo.toml
registry = "..."
pw136qt21#
如果你有一个crate和版本的列表,从$registry/api/v1/crates/$crate/$version/download下载它们,解包,用sed编辑registries = …或基于toml-edit的小rust-snippet,然后重新cargo publish就可以了。(也许一个额外的mv Cargo.toml.orig Cargo.toml是不错的。)我能想到的唯一的并发症是,由cargo publish完成的构建可能会失败,除非您按照最初发布的顺序重新发布。如果你喜欢危险的生活,你可以用--no-verify跳过它,但是除非你可以从你的目标注册表中删除crates(即回滚失败的迁移尝试),我会避免这种情况。
$registry/api/v1/crates/$crate/$version/download
registries = …
cargo publish
mv Cargo.toml.orig Cargo.toml
--no-verify
1条答案
按热度按时间pw136qt21#
如果你有一个crate和版本的列表,从
$registry/api/v1/crates/$crate/$version/download
下载它们,解包,用sed编辑registries = …
或基于toml-edit的小rust-snippet,然后重新cargo publish
就可以了。(也许一个额外的mv Cargo.toml.orig Cargo.toml
是不错的。)我能想到的唯一的并发症是,由cargo publish
完成的构建可能会失败,除非您按照最初发布的顺序重新发布。如果你喜欢危险的生活,你可以用--no-verify
跳过它,但是除非你可以从你的目标注册表中删除crates(即回滚失败的迁移尝试),我会避免这种情况。