この記事は Rustその3 Advent Calendar 2019 12/2 の記事です. カレンダーの枠が余っていたので下書きから放流します.
cargo --offline
外部クレートに依存するプロジェクトの初回ビルド時 (つまり Cargo.lock
が存在しないとき), cargo は自動的にインターネットにアクセスし, 依存クレートの情報を集めてきます. しかしながら, 例えば飛行機や新幹線で移動中だったりしてインターネットに接続できない/接続が不安定という状況では, インターネットアクセスできずビルドが失敗することがあります. このような状況では --offline
オプションを設定すれば問題が解決します.
cargo build --offline
はインターネットアクセスをせず, ローカルにキャッシュされた情報だけでビルドを行います. 従って過去に依存したことのあるクレートだけに依存する新しいプロジェクトならばオフライン環境でも初回ビルドが可能になります. ただし次の点に留意する必要があります.
- ローカルにキャッシュされていないクレート (またはその特定のバージョン) に依存しているとビルドに失敗します.
- インターネット上に依存クレートの最新版が既に公開されていたとしても, ローカルキャッシュを持つ版を用いてビルドします. このため, オフラインモードが有効なときとそうでないときとでビルド結果が違うことがあります.
この機能は Rust 1.36 で安定化されました.