CARGO-VENDOR(1) General Commands Manual CARGO-VENDOR(1)

cargo-vendor - وندور کردن و ذخیره محلی تمام وابستگی‌ها

cargo vendor [گزینه‌ها] [path]

این زیردستور cargo تمام وابستگی‌های crates.io و git یک پروژه را در دایرکتوری مشخص‌شده در <path> به‌صورت محلی ذخیره (vendor) می‌کند. پس از پایان کار این دستور، دایرکتوری وندور مشخص‌شده با <path> شامل تمام سورس‌های ریموت از وابستگی‌های تعیین‌شده خواهد بود. مانیفست‌های اضافی فراتر از مانیفست پیش‌فرض را می‌توان با گزینهٔ -s مشخص کرد.

پیکربندی لازم برای استفاده از سورس‌های وندورشده، پس از اتمام فرایند وندور توسط cargo vendor در stdout چاپ خواهد شد. شما باید آن را به فایل پیکربندی Cargo خود، که معمولاً به‌صورت محلی برای بستهٔ فعلی .cargo/config.toml است، اضافه کرده یا به آن هدایت (redirect) کنید.

‏Cargo با سورس‌های وندورشده همانند سورس‌های registry و git به‌صورت فقط‌خواندنی (read-only) برخورد می‌کند. اگر قصد دارید یک crate را از یک منبع ریموت تغییر دهید، از [patch] یا یک وابستگی path که به رونوشت محلی آن crate اشاره دارد استفاده کنید. سپس Cargo در ساخت‌های مجدد افزایشی (incremental rebuilds) آن crate را به‌درستی مدیریت خواهد کرد، چرا که می‌داند دیگر یک وابستگی فقط‌خواندنی نیست.

-s manifest, --sync manifest

یک مانیفست Cargo.toml اضافی را برای فضاهای کاری مشخص می‌کند که باید وندور شده و با خروجی همگام‌سازی شوند. این گزینه می‌تواند چندین بار مشخص شود.

--no-delete

هنگام وندور کردن، دایرکتوری “vendor” را حذف نمی‌کند، بلکه تمام محتویات موجود در دایرکتوری وندور را نگه می‌دارد.

--respect-source-config

به‌جای نادیده گرفتن پیش‌فرض پیکربندی [source] در .cargo/config.toml، آن را می‌خواند و برای مثال هنگام بارگیری crateها از crates.io از آن استفاده می‌کند.

--versioned-dirs

به‌طور معمول، شمارهٔ نسخه‌ها تنها برای رفع ابهام میان چند نسخه از یک بسته اضافه می‌شوند. این گزینه باعث می‌شود تمامی دایرکتوری‌های موجود در دایرکتوری “vendor” دارای شماره نسخه باشند؛ این کار پیگیری تاریخچهٔ بسته‌های وندورشده را در طول زمان آسان‌تر کرده و در صورت تغییر تنها بخشی از بسته‌ها، می‌تواند به کارایی وندور مجدد کمک کند.

--manifest-path path

مسیر فایل Cargo.toml. به‌طور پیش‌فرض، Cargo به دنبال فایل Cargo.toml در دایرکتوری فعلی یا هر یک از دایرکتوری‌های والد می‌گردد.

--locked

اطمینان حاصل می‌کند که دقیقاً از همان وابستگی‌ها و نسخه‌هایی استفاده شود که هنگام ایجاد فایل Cargo.lock موجود ثبت شده بودند. در صورت وقوع هر یک از سناریوهای زیر، Cargo با خطا متوقف خواهد شد:
•فایل lock وجود نداشته باشد.
•‏Cargo تلاش کند فایل lock را به دلیل حل وابستگی متفاوت تغییر دهد.

این گزینه می‌تواند در محیط‌هایی که در آن‌ها ساخت‌های تکرارپذیر و قطعی (deterministic builds) مورد نیاز است، مانند خطوط لولهٔ CI، استفاده شود.

--offline

از دسترسی Cargo به شبکه به هر دلیلی جلوگیری می‌کند. بدون این پرچم، اگر Cargo نیاز به دسترسی به شبکه داشته باشد و شبکه در دسترس نباشد، با خطا متوقف خواهد شد. با این پرچم، Cargo تلاش می‌کند در صورت امکان بدون شبکه عملیات را ادامه دهد.

توجه داشته باشید که این ممکن است به حل وابستگی متفاوتی نسبت به حالت برخط منجر شود. Cargo خود را به crateهایی که به‌صورت محلی بارگیری شده‌اند محدود می‌کند، حتی اگر نسخهٔ جدیدتری طبق رونوشت محلی نمایه (index) موجود باشد. دستور cargo-fetch(1) را برای بارگیری وابستگی‌ها پیش از آفلاین شدن ببینید.

همچنین می‌تواند از طریق مقدار پیکربندی net.offline https://doc.rust-lang.org/cargo/reference/config.html مشخص شود.

--frozen

معادل مشخص کردن هم‌زمان --locked و --offline است.

-v, --verbose

استفاده از خروجی پرگو. می‌تواند دو بار برای خروجی “بسیار پرگو” مشخص شود که شامل اطلاعات اضافه‌تری مانند هشدارهای وابستگی و خروجی اسکریپت ساخت است. همچنین می‌تواند از طریق مقدار پیکربندی term.verbose https://doc.rust-lang.org/cargo/reference/config.html مشخص شود.

-q, --quiet

عدم چاپ پیام‌های لاگ cargo. همچنین می‌تواند از طریق مقدار پیکربندی term.quiet https://doc.rust-lang.org/cargo/reference/config.html مشخص شود.

--color when

زمان استفاده از خروجی رنگی را کنترل می‌کند. مقادیر معتبر:
•auto (پیش‌فرض): تشخیص خودکار پشتیبانی از رنگ در ترمینال.
•always: نمایش همیشگی رنگ‌ها.
•never: عدم نمایش رنگ‌ها در هر شرایطی.

همچنین می‌تواند از طریق مقدار پیکربندی term.color https://doc.rust-lang.org/cargo/reference/config.html مشخص شود.

+toolchain

اگر Cargo با استفاده از rustup نصب شده باشد و نخستین آرگومان cargo با + آغاز شود، به‌عنوان نام زنجیره ابزار (toolchain) در rustup تفسیر می‌شود (مانند +stable یا +nightly). برای اطلاعات بیشتر در مورد نحوهٔ عملکرد بازنویسی‌های زنجیره ابزار، مستندات rustup https://rust-lang.github.io/rustup/overrides.html را ببینید.

--config KEY=VALUE یا PATH

یک مقدار پیکربندی Cargo را بازنویسی (override) می‌کند. آرگومان باید در ساختار نحوی TOML به‌صورت KEY=VALUE باشد، یا به‌عنوان مسیر یک فایل پیکربندی اضافی ارائه شود. این پرچم می‌تواند چندین بار مشخص شود. برای اطلاعات بیشتر، بخش بازنویسی‌های خط فرمان https://doc.rust-lang.org/cargo/reference/config.html#command-line-overrides را ببینید.

-C PATH

دایرکتوری کاری فعلی را قبل از اجرای هر عملیات مشخص‌شده تغییر می‌دهد. این موضوع مواردی از قبیل محلی که cargo به‌طور پیش‌فرض برای مانیفست پروژه (Cargo.toml) جستجو می‌کند و همچنین دایرکتوری‌های بررسی‌شده برای یافتن .cargo/config.toml را تحت تأثیر قرار می‌دهد. این گزینه باید قبل از نام دستور بیاید، برای مثال cargo -C path/to/my-project build.

این گزینه تنها در کانال nightly https://doc.rust-lang.org/book/appendix-07-nightly-rust.html در دسترس است و برای فعال‌سازی به پرچم -Z unstable-options نیاز دارد (به #10098 https://github.com/rust-lang/cargo/issues/10098 مراجعه کنید).

-h, --help

اطلاعات راهنما را چاپ می‌کند.

-Z flag

پرچم‌های ناپایدار (فقط nightly) برای Cargo. برای جزئیات دستور cargo -Z help را اجرا کنید.

برای جزئیات متغیرهای محیطی که Cargo می‌خواند، مرجع https://doc.rust-lang.org/cargo/reference/environment-variables.html را ببینید.

•0: دستور با موفقیت پایان یافت.
•101: اجرای Cargo با شکست مواجه شد.

1.وندور کردن تمام وابستگی‌ها در پوشهٔ محلی “vendor”
cargo vendor
2.وندور کردن تمام وابستگی‌ها در پوشهٔ محلی “third-party/vendor”
cargo vendor third-party/vendor
3.وندور کردن فضای کاری فعلی و همچنین یک فضای کاری دیگر در “vendor”
cargo vendor -s ../path/to/Cargo.toml
4.وندور کردن و هدایت پیکربندی‌های لازمِ وندور به یک فایل پیکربندی
cargo vendor > path/to/my/cargo/config.toml

cargo(1)