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
每月下载量 14,974
170KB
2K SLoC
cargo-update

A cargo
子命令,用于检查和更新已安装的可执行程序
文档
手册
安装
然后按常规操作进行
cargo install cargo-update
如果不起作用
- 使用
PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
重新尝试, - 使用
LIBSSH2_SYS_USE_PKG_CONFIG=whatever
重新尝试, - 使用
brew
安装 OpenSSL,并使用LDFLAGS="-L/usr/local/opt/openssl@1.1/lib" CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
重新尝试, - 使用
brew
验证您没有安装两次openssl
, - 使用
--features vendored-openssl
重新尝试, - 使用
--features vendored-libgit2
重新尝试。 - 使用
--features vendored-libcurl
重新尝试。
如果仍然不起作用,请 打开一个问题 或 在现有相关问题上发表评论。
依赖项
依赖项 | 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,如clippy
和rustfmt
,已从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