使用したパッケージを更新したいcargo install
rustfmtやracerなどのパッケージをグローバルにインストールします。最初に削除することなくインストール済みパッケージを更新する方法が見つかりません(cargo uninstall
)そして、インストールコマンドを再度実行します。更新コマンドはありますか?
Cargo 1.36.0以降、cargo-update
クレートを使用してクレートを最新バージョンに更新する代わりに、夜間ツールチェーンで次のコマンドを使用できるようになりました。
rustup install nightly
cargo +nightly install -Z install-upgrade <crate>
これは、プルリクエスト #6798(インストールアップグレードの追加) から来ました。
cargo install
がパッケージが既にインストールされていることを検出したときに失敗する代わりに、バージョンが一致しない場合はアップグレードし、「最新」と見なされる場合は何もしません(終了0)。
次のコマンドは、always新しいバージョンが利用できない場合でも、最新バージョンのクレートをアンインストール、ダウンロード、コンパイルします。通常の状況では、クレートの新しいバージョンがない場合、時間と帯域幅を節約するため、install-upgrade
機能を優先する必要があります。
cargo install --force <crate>
詳細については、GitHubの問題 Rust-lang/cargo#6797 および公式ドキュメントの章 不安定な機能->インストールアップグレード を参照してください。
バニラにはそのようなコマンドはありませんcargo
(まあ、cargo install
がありますが、それは依存関係のためです)が、cargo
が サードパーティのサブコマンド をサポートするため答え: cargo-update
crate 。
通常どおりcargo install cargo-update
でインストールし、cargo install-update -a
を使用してインストール済みのすべてのパッケージを更新します。詳細な使用情報と例については、 cargo install-update
manpage を参照してください。
免責事項:am author
私が見つけた解決策は、--force
フラグをインストールコマンドに。例えば cargo install --force clippy
。これにより、最新バージョンが事実上再インストールされます。
いや。 this issueで議論できます。