我想更新一个使用 cargo install在全局范围内安装包的包,比如 rustfmt 或 racer。如果不首先删除已安装的软件包(通过 cargo uninstall) ,然后再次运行 install 命令,我就无法找到更新它的方法。有更新命令吗?
cargo install
cargo uninstall
在普通的 cargo中没有这样的命令(好吧,有 cargo install,但那是用于依赖关系的) ,但是因为 cargo支持 第三方子命令,所以有一个答案: cargo-update板条箱。
cargo
cargo-update
像往常一样使用 cargo install cargo-update安装,然后使用 cargo install-update -a更新所有已安装的软件包,有关更多使用信息和示例,请参见 cargo install-update手册。
cargo install cargo-update
cargo install-update -a
cargo install-update
免责声明: 我是作者
我找到的一个解决方案是向 install 命令添加 --force标志。例如 cargo install --force clippy。这将有效地重新安装最新版本。
--force
cargo install --force clippy
As of Rust 1.41.0, you can use the following command to update crates to their latest version:
cargo install <crate>
这来自拉请求 # 6798(添加安装-升级)和稳定在 # 7560(稳定安装-升级)。
如果 cargo install检测到软件包已经安装,它不会失败,如果版本不匹配,它会升级; 如果它被认为是“最新版本”,则什么也不做(退出0)。
下面的命令将 一直都是卸载,下载和编译的最新版本的板条箱-即使没有更新的版本可用。在正常情况下,install-upgrade的功能应该是首选的,因为它确实节省时间和带宽,如果没有新版本的板条箱。
install-upgrade
cargo install --force <crate>
更多信息可以在 GitHub 问题 Rust-Lang/货物编号6797和 在官方文件一章中找到。
Here is a one-liner to update all installed Cargo crates, except those installed from a local folder:
cargo install $(cargo install --list | egrep '^[a-z0-9_-]+ v[0-9.]+:$' | cut -f1 -d' ')
说明: