mirror of https://github.com/rust-lang/cargo
180 lines
7.2 KiB
Plaintext
180 lines
7.2 KiB
Plaintext
CARGO-VENDOR(1)
|
||
|
||
NAME
|
||
cargo-vendor — Vendor all dependencies locally
|
||
|
||
SYNOPSIS
|
||
cargo vendor [options] [path]
|
||
|
||
DESCRIPTION
|
||
This cargo subcommand will vendor all crates.io and git dependencies for
|
||
a project into the specified directory at <path>. After this command
|
||
completes the vendor directory specified by <path> will contain all
|
||
remote sources from dependencies specified. Additional manifests beyond
|
||
the default one can be specified with the -s option.
|
||
|
||
The configuration necessary to use the vendored sources would be printed
|
||
to stdout after cargo vendor completes the vendoring process. You will
|
||
need to add or redirect it to your Cargo configuration file, which is
|
||
usually .cargo/config.toml locally for the current package.
|
||
|
||
Cargo treats vendored sources as read-only as it does to registry and
|
||
git sources. If you intend to modify a crate from a remote source, use
|
||
[patch] or a path dependency pointing to a local copy of that crate.
|
||
Cargo will then correctly handle the crate on incremental rebuilds, as
|
||
it knowns that it is no longer a read-only dependency.
|
||
|
||
OPTIONS
|
||
Vendor Options
|
||
-s manifest, --sync manifest
|
||
Specify an extra Cargo.toml manifest to workspaces which should also
|
||
be vendored and synced to the output. May be specified multiple
|
||
times.
|
||
|
||
--no-delete
|
||
Don’t delete the “vendor” directory when vendoring, but rather
|
||
keep all existing contents of the vendor directory
|
||
|
||
--respect-source-config
|
||
Instead of ignoring [source] configuration by default in
|
||
.cargo/config.toml read it and use it when downloading crates from
|
||
crates.io, for example
|
||
|
||
--versioned-dirs
|
||
Normally versions are only added to disambiguate multiple versions
|
||
of the same package. This option causes all directories in the
|
||
“vendor” directory to be versioned, which makes it easier to
|
||
track the history of vendored packages over time, and can help with
|
||
the performance of re-vendoring when only a subset of the packages
|
||
have changed.
|
||
|
||
Manifest Options
|
||
--manifest-path path
|
||
Path to the Cargo.toml file. By default, Cargo searches for the
|
||
Cargo.toml file in the current directory or any parent directory.
|
||
|
||
--locked
|
||
Ensures that Cargo uses the exact version of every dependency
|
||
captured in the existing Cargo.lock file. Cargo will exit with an
|
||
error when either of the following scenarios arises:
|
||
|
||
o The lock file is missing.
|
||
|
||
o The dependency resolution has changed, often caused by modifying
|
||
dependencies in the Cargo.toml file.
|
||
|
||
It may be used in environments where you want to assert that the
|
||
Cargo.lock file is up-to-date for reproducibility reasons, such as
|
||
in a CI build.
|
||
|
||
--offline
|
||
Prevents Cargo from accessing the network for any reason. Without
|
||
this flag, Cargo will stop with an error if it needs to access the
|
||
network and the network is not available. With this flag, Cargo will
|
||
attempt to proceed without the network if possible.
|
||
|
||
Beware that this may result in different dependency resolution than
|
||
online mode. Cargo will restrict itself to crates that are
|
||
downloaded locally, even if there might be a newer version as
|
||
indicated in the local copy of the index. See the cargo-fetch(1)
|
||
command to download dependencies before going offline.
|
||
|
||
May also be specified with the net.offline config value
|
||
<https://doc.rust-lang.org/cargo/reference/config.html>.
|
||
|
||
--frozen
|
||
Equivalent to specifying both --locked and --offline.
|
||
|
||
Display Options
|
||
-v, --verbose
|
||
Use verbose output. May be specified twice for “very verbose”
|
||
output which includes extra output such as dependency warnings and
|
||
build script output. May also be specified with the term.verbose
|
||
config value
|
||
<https://doc.rust-lang.org/cargo/reference/config.html>.
|
||
|
||
-q, --quiet
|
||
Do not print cargo log messages. May also be specified with the
|
||
term.quiet config value
|
||
<https://doc.rust-lang.org/cargo/reference/config.html>.
|
||
|
||
--color when
|
||
Control when colored output is used. Valid values:
|
||
|
||
o auto (default): Automatically detect if color support is
|
||
available on the terminal.
|
||
|
||
o always: Always display colors.
|
||
|
||
o never: Never display colors.
|
||
|
||
May also be specified with the term.color config value
|
||
<https://doc.rust-lang.org/cargo/reference/config.html>.
|
||
|
||
Common Options
|
||
+toolchain
|
||
If Cargo has been installed with rustup, and the first argument to
|
||
cargo begins with +, it will be interpreted as a rustup toolchain
|
||
name (such as +stable or +nightly). See the rustup documentation
|
||
<https://rust-lang.github.io/rustup/overrides.html> for more
|
||
information about how toolchain overrides work.
|
||
|
||
--config KEY=VALUE or PATH
|
||
Overrides a Cargo configuration value. The argument should be in
|
||
TOML syntax of KEY=VALUE, or provided as a path to an extra
|
||
configuration file. This flag may be specified multiple times. See
|
||
the command-line overrides section
|
||
<https://doc.rust-lang.org/cargo/reference/config.html#command-line-overrides>
|
||
for more information.
|
||
|
||
-C PATH
|
||
Changes the current working directory before executing any specified
|
||
operations. This affects things like where cargo looks by default
|
||
for the project manifest (Cargo.toml), as well as the directories
|
||
searched for discovering .cargo/config.toml, for example. This
|
||
option must appear before the command name, for example cargo -C
|
||
path/to/my-project build.
|
||
|
||
This option is only available on the nightly channel
|
||
<https://doc.rust-lang.org/book/appendix-07-nightly-rust.html> and
|
||
requires the -Z unstable-options flag to enable (see #10098
|
||
<https://github.com/rust-lang/cargo/issues/10098>).
|
||
|
||
-h, --help
|
||
Prints help information.
|
||
|
||
-Z flag
|
||
Unstable (nightly-only) flags to Cargo. Run cargo -Z help for
|
||
details.
|
||
|
||
ENVIRONMENT
|
||
See the reference
|
||
<https://doc.rust-lang.org/cargo/reference/environment-variables.html>
|
||
for details on environment variables that Cargo reads.
|
||
|
||
EXIT STATUS
|
||
o 0: Cargo succeeded.
|
||
|
||
o 101: Cargo failed to complete.
|
||
|
||
EXAMPLES
|
||
1. Vendor all dependencies into a local “vendor” folder
|
||
|
||
cargo vendor
|
||
|
||
2. Vendor all dependencies into a local “third-party/vendor” folder
|
||
|
||
cargo vendor third-party/vendor
|
||
|
||
3. Vendor the current workspace as well as another to “vendor”
|
||
|
||
cargo vendor -s ../path/to/Cargo.toml
|
||
|
||
4. Vendor and redirect the necessary vendor configs to a config file.
|
||
|
||
cargo vendor > path/to/my/cargo/config.toml
|
||
|
||
SEE ALSO
|
||
cargo(1)
|
||
|