λ cargo install
cargo install
でインストールできるもの
コマンドラインツールやアプリケーション
cargo install
は、実行可能なバイナリを生成するRustクレートをインストールします。例えば、 ripgrep
や exa
のようなCLIツールが該当します。
インストール対象
Cargo.toml
に [package]
セクションと、 [[bin]]
セクションで定義されたエントリポイントがあるクレートが対象です。
cargo install
の動作の仕組み
1. ソースコードをダウンロード
指定されたクレートのソースコードを crates.io
(もしくは指定されたリポジトリ)からダウンロードします。
2. ローカル環境でビルド
ダウンロードしたソースコードをローカル環境でコンパイルして、実行可能なバイナリを生成します。
3. バイナリを配置
コンパイルされたバイナリは、デフォルトでは ~/.cargo/bin
ディレクトリにインストールされます。
---
cargo install
にRustのランタイムは必要か?
必要
cargo install
はローカルでソースコードをコンパイルするため、Rustのツールチェーン( rustc
や cargo
)がインストールされている必要があります。通常、 rustup
を通じてインストールします。
理由
クレートはソースコードとして配布されるため、実行可能な状態にするにはローカルでコンパイルする必要があるためです。
---
バイナリ配布との違い
1. cargo install
ソースコードを取得して、ローカルでコンパイルします。
利点: インストール時に自動的にターゲット環境に最適化されます。
欠点: コンパイル時間がかかる(特に依存関係が多い場合)。
2. バイナリ配布
事前にビルドされた実行可能ファイルを直接ダウンロードして配置します。
利点: コンパイル不要でインストールが高速。
欠点: ターゲット環境に合わせたビルドが必要で、クロスプラットフォームのサポートが難しい場合がある。
---
バイナリ配布を行いたい場合
GitHub Releaseなどでビルド済みバイナリを提供する方法があります。
また、 cargo-binstall
というツールを使うと、ビルド済みバイナリを探してインストールできるため、 cargo install
の代替になる場合もあります。