2.9. プロジェクト依存関係のベンダー


プロジェクト依存関係のベンダーとは、オフライン再分配および再分散のための依存関係のローカルコピーを作成することを意味します。ベンダーの依存関係は、インターネットに接続せずに cargo ビルドツールで使用することができます。

依存関係をベンダーする cargo vendor コマンドは、cargo プラグイン cargo-vendor により提供されます。

cargo-vendor 0.1.23 をインストールするには、次のコマンドを実行します。

  • Red Hat Enterprise Linux 7 の場合:

    # yum install rust-toolset-1.35-cargo-vendor
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 8 の場合:

    # dnf install cargo-vendor
    Copy to Clipboard Toggle word wrap

cargo プロジェクトのベンダーの依存関係には、プロジェクトディレクトリーに移動し、以下のように cargo ツールを実行します。

  • Red Hat Enterprise Linux 7 の場合:

    $ scl enable rust-toolset-1.35 'cargo vendor'
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 8 の場合:

    $ cargo vendor
    Copy to Clipboard Toggle word wrap

これによりディレクトリー vendor が作成され、このディレクトリーへのすべての依存関係のソースがダウンロードされます。追加の設定手順はコマンドラインに表示されます。

cargo vendor コマンドは、プラットフォームに依存しない結果の依存関係を収集します。潜在的なすべてのターゲットプラットフォームの依存関係クレートがダウンロードされます。

重要

この cargo vendor コマンドは、cargo ツールの実験的かつ非実験的なプラグインです。

例2.8 プロジェクト依存関係のベンダー

この例では、例2.6「プロジェクトへの依存関係の追加および cargo で構築」 に従って依存関係で Rust プロジェクト helloworld を正常にビルドしていることを前提としています。

ディレクトリー helloworld に移動し、cargo vendor コマンドを実行して依存関係のあるプロジェクトをベンダーします。

  • Red Hat Enterprise Linux 7 の場合:

    $ scl enable rust-toolset-1.35 'cargo vendor'
     Downloading kernel32-sys v0.2.2
     Downloading redox_syscall v0.1.31
     Downloading winapi-build v0.1.1
     Downloading winapi v0.2.8
       Vendoring kernel32-sys v0.2.2 (/home/vslavik/.cargo/registry/src/github.com-1ecc6299db9ec823/kernel32-sys-0.2.2) to vendor/kernel32-sys
       Vendoring libc v0.2.32 (/home/vslavik/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.32) to vendor/libc
       Vendoring redox_syscall v0.1.31 (/home/vslavik/.cargo/registry/src/github.com-1ecc6299db9ec823/redox_syscall-0.1.31) to vendor/redox_syscall
       Vendoring time v0.1.38 (/home/vslavik/.cargo/registry/src/github.com-1ecc6299db9ec823/time-0.1.38) to vendor/time
       Vendoring winapi v0.2.8 (/home/vslavik/.cargo/registry/src/github.com-1ecc6299db9ec823/winapi-0.2.8) to vendor/winapi
       Vendoring winapi-build v0.1.1 (/home/vslavik/.cargo/registry/src/github.com-1ecc6299db9ec823/winapi-build-0.1.1) to vendor/winapi-build
    To use vendored sources, add this to your .cargo/config for this project:
    
        [source.crates-io]
        replace-with = "vendored-sources"
    
        [source.vendored-sources]
        directory = "/home/vslavik/helloworld/vendor"
    Copy to Clipboard Toggle word wrap
  • Red Hat Enterprise Linux 8 の場合:

    $ cargo vendor
    Copy to Clipboard Toggle word wrap

結果を確認します。

$ ls
Cargo.lock  Cargo.toml  src  target  vendor
$ tree vendor
vendor
├── kernel32-sys
│   ├── build.rs
│   ├── Cargo.toml
│   ├── README.md
│   └── src
│       └── lib.rs
├── libc
│   ├── appveyor.yml
│   ├── Cargo.toml
...
75 directories, 319 files
Copy to Clipboard Toggle word wrap

vendor ディレクトリーには、helloworld プログラムを構築するために必要なすべての依存関係 crates のコピーが含まれます。Windows オペレーティングシステムでプロジェクトをビルドするための Crates は、Red Hat Enterprise Linux でこのコマンドを実行してもベンダーが提供されています。

注記

tree ツールは、デフォルトの Red Hat Enterprise Linux リポジトリーから利用できます。インストールするには、以下を行います。

# yum install tree
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat