Rustパッケージを更新する

Rust のパッケージは Cargo.toml で管理されていますが,npm のように install コマンドで全てのパッケージが簡単に更新できるような感じではないようです.

パッケージの個別更新

最新バージョンに更新

以下のコマンドで最新バージョンに更新します.

terminal

$ cargo update -p PACKAGE

install コマンドでもできるらしいです.

$ cargo install -f PACKAGE

特定バージョンに更新

オプションをつければバージョン指定も可能です.

terminal

$ cargo update -p PACKAGE --precise x.x.x

パッケージの一括更新

cargo-update というパッケージを一括でアップロードするツールがあります.

terminal

$ cargo install cargo-update
$ cargo install-update -a

実行すると全てのパッケージが依存関係を壊さないようになるべく新しいバージョンにアップデートされます.

エラー

install コマンドを使用したときに以下のエラーが発生することがあります.

This command manages Cargo's local set of installed binary crates. Only packages which have executable [[bin]] or [[example]] targets can be installed, and all executables are installed into the installation root's bin folder.

参考:cargo install - The Cargo Book

パッケージが実行可能ファイルを持っていない場合は install コマンドを使用できないようです.

この場合は Cargo.toml ファイルを編集する必要があります.

インストールしたいパッケージのバージョンとその依存関係は crates.io で調べることができます.

Cargo.toml 編集後に cargo build するとパッケージをフェッチでき, この際 Cargo.lock も更新されます.