我想更新我用于cargo install
全局安装软件包的软件包,例如rustfmt或racer.我没有找到更新已安装软件包的方法,而不先删除它(通过cargo uninstall
),然后再次运行install命令.有更新命令吗?
在vanilla中没有这样的命令cargo
(好吧,cargo install
但那是依赖关系),但是由于cargo
支持第三方子命令,所以有一个答案:cargo-update
crate.
像往常一样安装cargo install cargo-update
,然后使用cargo install-update -a
更新所有已安装的软件包,有关更多用法信息和示例,请参阅cargo install-update
联机帮助页.
免责声明:我是作者
我发现的解决方案是将--force
标志添加到install命令.例如cargo install --force clippy
.这将有效地重新安装最新版本.
不.您可以在讨论这个问题.
从Cargo 1.36.0开始,您现在可以在每晚工具链上使用以下命令,而不是使用cargo-update
板条箱将板条箱更新为最新版本:
rustup install nightly
cargo +nightly install -Z install-upgrade
这来自请求请求#6798(添加安装升级)。
如果不会cargo install
检测到已安装的软件包,它会升级而不是失败,如果版本不匹配,它将升级,或者如果它被认为是“最新”,则不执行任何操作(退出0)。
以下命令将始终卸载,下载和编译最新版本的板条箱-即使没有可用的较新版本。通常情况下,install-upgrade
应该首选该功能,因为如果没有新版本的包装箱,它可以节省时间和带宽。
cargo install --force
可以在GitHub问题rust-lang / cargo#6797和官方文档章节不稳定功能-> install-upgrade中找到更多信息。