我使用 cargo install
全局安装包,例如 rustfmt 或 racer。
如何在不先删除已安装的包(cargo uninstall
),再运行 cargo install
的情况下更新已安装的包。
是否有更新命令?
我使用 cargo install
全局安装包,例如 rustfmt 或 racer。
如何在不先删除已安装的包(cargo uninstall
),再运行 cargo install
的情况下更新已安装的包。
是否有更新命令?
在原版中没有这样的命令(好吧,有,但那是用于依赖项的),但由于支持第三方子命令,因此有一个答案:使用cargo-update
crate。
像往常一样安装即可。
cargo install cargo-update
然后使用
cargo install-update -a
要更新所有已安装的软件包,请参阅cargo install-update
手册获取更多使用信息和示例。
免责声明:我是作者
cmake
。 - rofrolcargo install
但那是用来安装依赖的。实际上,现在可以使用 cargo install
来全局安装 crates:安装 Rust 二进制文件。默认位置为 $HOME/.cargo/bin
。 - tmillr从Rust 1.41.0开始,您可以使用以下命令将crate更新到最新版本:
cargo install <crate>
这是来自拉取请求#6798(添加install-upgrade),并已在#7560(稳定安装升级)中得到稳定。
与其在检测到软件包已安装时失败,它将在版本不匹配时进行升级,或者如果被认为是“最新的”,则不执行任何操作(退出0)。
以下命令将始终卸载、下载和编译crate的最新版本——即使没有更新的版本可用。通常情况下,应优先选择install-upgrade
功能,因为如果该crate没有新版本,则可以节省时间和带宽。
cargo install --force <crate>
更多信息可在GitHub的问题 rust-lang/cargo#6797 和 官方文档章节 中找到。
-Z install-upgrade
参数。https://github.com/rust-lang/cargo/pull/7560 - Ragcargo install --list | grep '^[a-zA-Z0-9_\-]* v[0-9.]*:$' | cut -d ' ' -f1 | xargs cargo install
即可。 - Tomwasm-pack 0.10.0
,但当我尝试使用 cargo install wasm-pack
将其更新到 0.10.1
时,出现了错误:error: binary 'wasm-pack' already exists in destination
,我不得不使用 --force
。 - Herohtar我找到的解决方案是在安装命令中添加--force
标志。例如:cargo install --force clippy
。这将有效地重新安装最新版本。
cargo
版本中,使用 --force
命令已经不再是更新 crate 的必要步骤了。 - David Bailey这是一个一行命令,用于更新所有已安装的Cargo包,除了那些从本地文件夹安装的包:
cargo install $(cargo install --list | egrep '^[a-z0-9_-]+ v[0-9.]+:$' | cut -f1 -d' ')
说明:
cargo install
cargo install $(cargo install --list | awk '/:$/ { print $1; }')
- DexterHaxxorcargo install --locked $(cat $CARGO_HOME/.crates2.json | jq -r '.installs | keys[] | split(" ")[0]')
jq
来运行这个命令。我使用this command来可靠地获取已安装的软件包。--locked
。如果没有--locked
,可能会导致一些构建失败。例如,截至今天,如果你使用cargo install-update -a
,你将收到类似"Failed to update pueue, ripgrep_all."的消息(在这里,用需要--locked
的软件包替换pueue、ripgrep_all)。function rust_update_packages
# cargo install --locked ripgrep_all
# cargo install --locked pueue
# Alacritty Dependencies
apt install -y cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev python3
cargo install --locked $(cat $CARGO_HOME/.crates2.json | jq -r '.installs | keys[] | split(" ")[0]')
end
cargo install thing
将会导致其被更新。 - BallpointBen