忍者ブログ

青空を映す皿

オフラインでRustのクレートを使う(Windows)

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

オフラインでRustのクレートを使う(Windows)

クレートとは、ライブラリの事。
Rustでは、ここから検索して、使用するクレートを選ぶ。
選んだクレートは、cargoコマンドでプロジェクトを作ると、プロジェクトフォルダ内に「Cargo.toml」ファイルが出来る。
その「Cargo.toml」ファイル内で、「[dependencies]」配下に、使用するクレート名とバージョンを記載。
プロジェクトをコンパイルすると、上記サイトから該当クレートの該当バージョンのソースをダウンロード。
自分のコードに、クレートを使用する記述。
という流れで、簡単に使える便利機能なのだが、当然オフラインでは使えない。


オンライン端末作業

クレートのダウンロードが必要なため、相変わらずオンライン端末は必要。
そのオンライン端末には、前回書いた、「Microsoft C++ Build Tools 2022」と「Rust」をインストールしておく。
上記サイトで、使用するクレートを決める。
クレートのページを少しスクロールすると、右側に「Repository」のリンクがあるのでリンクをクリック。
GitHubなど各種リポジトリのページが表示されるので、そこからソースをダウンロード。
ダウンロードファイルを解凍。
プロキシ環境の場合、下記を実行。
set HTTP_PROXY=http://ID:PASS@proxy.example.co.jp:PORT
set HTTPS_PROXY=http://ID:PASS@proxy.example.co.jp:PORT

 ※ID:プロキシのユーザID
 ※PASS:プロキシのユーザのパスワード
 ※proxy.example.co.jp:プロキシのFQDN。
 ※PORT:プロキシのポート番号


下記コマンドで、コンパイル。
cd /d 「解凍したフォルダ」
cargo build -r

 ※可能なら、「--all-features」オプションを付ける。
実行すると依存クレートをダウンロードして、コンパイルする。
※コンパイルエラーが表示された場合は、対処する。
ダウンロードしたクレートを「解凍したフォルダ」を圧縮する。
「%USERPROFILE%\.cargo」を圧縮する。


ダウンロードファイル移動

圧縮した2ファイルをオフライン端末へ移動。


オフライン端末作業

任意の場所に、クレートを解凍する。
「%USERPROFILE%\.cargo」を同じ場所へ解凍する。
クレートを使用する準備が出来たので、cargoコマンドでプロジェクトを作成。
「Cargo.toml」の「[dependencies]」に下記のように記載。
crate_name = { path = "......./crate_name_x.y.z/", version = "x.y.z" }

保存と同時に、ダウンロード出来ないエラーが出るが、無視して、下記を実行。
cargo build --offline

これでダウンロードしたクレートを参照するようになり、ダウンロードエラーが出なくなる。
基本的に、cargoコマンドには、--offlineオプションを付ける。
cargo build --offline
cargo test --offline

一度、実行すれば、以降は付けなくても問題ないが、たまにネットを見に行こうとするので、明示的に付ける方が楽。


問題点

最後に、ファイル移動時の問題として、「%USERPROFILE%\.cargo」のサイズ肥大化がある。
色々なクレートをダウンロードしていると、飛躍的に肥大化していくので注意が必要。
ファイル移動するデバイスが溢れないように、分割する必要があるかもしれない。

拍手[0回]

PR

コメント

プロフィール

HN:
性別:
非公開

P R