95 个版本 (稳定)

使用旧的 Rust 2015

14.0.2 2024 年 8 月 14 日
13.4.0 2024 年 3 月 24 日
13.3.0 2023 年 11 月 21 日
13.0.4 2023 年 5 月 20 日
0.6.0 2016 年 11 月 30 日

Cargo 插件 中排名第 34

Download history • Rust 包仓库 1538/week @ 2024-05-04 • Rust 包仓库 1450/week @ 2024-05-11 • Rust 包仓库 1529/week @ 2024-05-18 • Rust 包仓库 1227/week @ 2024-05-25 • Rust 包仓库 1287/week @ 2024-06-01 • Rust 包仓库 2508/week @ 2024-06-08 • Rust 包仓库 1430/week @ 2024-06-15 • Rust 包仓库 1012/week @ 2024-06-22 • Rust 包仓库 1081/week @ 2024-06-29 • Rust 包仓库 1070/week @ 2024-07-06 • Rust 包仓库 1036/week @ 2024-07-13 • Rust 包仓库 1358/week @ 2024-07-20 • Rust 包仓库 1149/week @ 2024-07-27 • Rust 包仓库 1334/week @ 2024-08-03 • Rust 包仓库 8696/week @ 2024-08-10 • Rust 包仓库 3386/week @ 2024-08-17 • Rust 包仓库

每月下载量 14,974

MIT 许可证

170KB
2K SLoC

cargo-update TravisCI 构建状态 AppVeyorCI 构建状态 许可 Crates.io 版本

A cargo 子命令,用于检查和更新已安装的可执行程序

文档

手册

安装

首先,确保您已安装 CMake所需库™

然后按常规操作进行

cargo install cargo-update

如果不起作用

如果仍然不起作用,请 打开一个问题在现有相关问题上发表评论

依赖项

依赖项 Debian 软件包 Fedora 软件包 MSYS2 软件包
libgit2 libgit2-dev libgit2-devel mingw-w64-x86_64-libgit2
libcurl libcurl4-*-开发 libcurl-开发 libcurl-devel
libssh2 libssh-dev libssh2-devel mingw-w64-x86_64-libssh2
openssl libssl-dev openssl-devel mingw-w64-x86_64-openssl
pkgconf(某些平台) pkgconf pkgconf mingw-w64-x86_64-pkgconf

用法

cargo install-update -a — 检查新版本并更新所有已安装的软件包。

cargo install-update crate1 crate2 ... — 检查新版本并更新所选软件包,不会安装新软件包。

有关更多信息和方法,请参阅 手册

cargo install-update-config -t unstable -f feature1 -d false crate — 在构建crate时,使用带feature1且不带默认功能的unstable工具链。

有关更多信息示例,请参阅手册

自动更新

cargo-update将在Linux和Windows上无缝更新自身。

在Windows上采用以下策略

  • 检查旧版本,并移除它们
  • 将当前版本添加到当前可执行文件的扩展名
  • 在刚刚重命名的文件的位置创建一个空文件(这样cargo install将“替换”它,而不会在.crates.toml中重复条目)

故障排除

一些crate,如clippyrustfmt,已从Crates.io迁移到rustup组件。如果您之前已安装它们,然后通过rustup component安装,则它们可能没有被从cargo install安装的crate列表中删除,并且您可能遇到错误,例如

$ cargo install-update -a
Updating registry 'https://github.com/rust-lang/crates.io-index'

Package          Installed  Latest    Needs update
clippy           v0.0.179   v0.0.302  Yes
.....

Updating clippy
    Updating crates.io index
  Installing clippy v0.0.302
   Compiling clippy v0.0.302
error: failed to compile `clippy v0.0.302`, intermediate artifacts can be found at `/tmp/cargo-installxHfj2y`

Caused by:
  failed to run custom build command for `clippy v0.0.302`

Caused by:
  process didn't exit successfully: `/tmp/cargo-installxHfj2y/release/build/clippy-ffeedc2f188020a4/build-script-build` (exit code: 1)
--- stderr

error: Clippy is no longer available via crates.io

help: please run `rustup component add clippy-preview` instead

在这种情况下,运行cargo install --list以验证它们仍然存在,并运行cargo uninstall以取消注册cargo版本,并保留rustup版本。

前沿的cargo

0.42.0开始,cargo install cratename将检查新版本,并在存在时安装它们,而不是像通常那样出错。

源替换与自定义仓库

Cargo允许一次性替换整个仓库

例如,此~/.cargo/config条目将用上海交通大学镜像替换默认的crates.io仓库

[source.crates-io]
replace-with = "sjtu"

[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

cargo-update解析为最深层的仓库,并将--registry sjtu传递给cargo install。这直到大约nightly-2019-08-10都有效,但由于Cargo回归(或功能,但它没有通过主要版本升级进行破坏,所以)--registry检查不同的密钥,因此需要此附加条目以确保正确更新

[registries.sjtu]
index = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"

授予初始实现重写最终损坏的测试用例最终调试实现线程(感谢@DCJanus在调试和测试用例方面的帮助,同时也处理了我逐渐陷入疯狂的情况)。

特别感谢

所有在Patreon上支持进一步开发的人,特别是

  • ThePhD
  • Embark Studios
  • Lars Strojny
  • EvModder

依赖项

~26–37MB
~773K SLoC