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

cargo-update - به‌روزرسانی وابستگی‌های ثبت‌شده در فایل قفل محلی

cargo update [گزینه‌ها] spec

این دستور وابستگی‌های موجود در فایل Cargo.lock را به آخرین نسخه به‌روزرسانی می‌کند. اگر فایل Cargo.lock وجود نداشته باشد، با جدیدترین نسخه‌های موجود ایجاد خواهد شد.

spec…

فقط بسته‌های مشخص‌شده را به‌روزرسانی می‌کند. این پرچم را می‌توان چندین بار مشخص کرد. برای اطلاع از قالب SPEC به cargo-pkgid(1) مراجعه کنید.

اگر بسته‌ها با spec مشخص شوند، یک به‌روزرسانی محافظه‌کارانه روی فایل قفل انجام خواهد شد. این بدان معناست که تنها وابستگی مشخص‌شده توسط SPEC به‌روزرسانی می‌شود. وابستگی‌های گذارای (transitive) آن تنها در صورتی به‌روزرسانی می‌شوند که SPEC بدون به‌روزرسانی وابستگی‌ها امکان به‌روزرسانی نداشته باشد. تمام وابستگی‌های دیگر روی نسخه‌های ثبت‌شده فعلی‌شان قفل باقی خواهند ماند.

اگر spec مشخص نشود، تمام وابستگی‌ها به‌روزرسانی می‌شوند.

--recursive

هنگامی که همراه با spec استفاده شود، وابستگی‌های spec نیز مجبور به به‌روزرسانی می‌شوند. نمی‌تواند همراه با --precise استفاده شود.

--precise precise

هنگامی که همراه با spec استفاده شود، به شما امکان می‌دهد شماره نسخه مشخصی را برای تنظیم بسته تعیین کنید. اگر بسته از یک مخزن git باشد، این مقدار می‌تواند یک بازبینی (revision) در git باشد (مانند هش SHA یا تگ).

اگرچه توصیه نمی‌شود، اما می‌توانید یک نسخه yanked (حذف/باطل‌شده) از بسته را مشخص کنید. در صورت امکان، سایر نسخه‌های سازگار با SemVer که yanked نشده‌اند را امتحان کنید یا از نگهدارندگان بسته راهنمایی بخواهید.

یک نسخه سازگار pre-release را نیز می‌توان مشخص کرد، حتی زمانی که الزامات نسخه در Cargo.toml شامل هیچ شناسه‌ای برای پیش‌انتشار نباشد (فقط در nightly).

--breaking directory

به‌روزرسانی spec به آخرین نسخه‌ای که ناسازگار با SemVer است (تغییرات عمده و شکننده).

الزامات نسخه (version requirements) برای مجاز کردن این به‌روزرسانی تغییر خواهند کرد.

این مورد تنها زمانی برای وابستگی‌ها اعمال می‌شود که:

•بسته، وابستگی یکی از اعضای فضای کاری (workspace member) باشد
•نام وابستگی تغییر داده نشده باشد
•یک نسخه ناسازگار با SemVer در دسترس باشد
•از «عملگر SemVer» استفاده شده باشد (^ که پیش‌فرض است)

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

-w, --workspace

تلاش برای به‌روزرسانی تنها بسته‌های تعریف‌شده در فضای کاری (workspace). بسته‌های دیگر تنها در صورتی به‌روزرسانی می‌شوند که از قبل در فایل قفل وجود نداشته باشند. این گزینه برای به‌روزرسانی Cargo.lock پس از تغییر شماره نسخه‌ها در Cargo.toml مفید است.

--dry-run

آنچه را که به‌روزرسانی خواهد شد نمایش می‌دهد، اما در عمل چیزی در فایل قفل نمی‌نویسد.

-v, --verbose

استفاده از خروجی پرگو (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 مشخص شود.

--manifest-path path

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

--ignore-rust-version

مشخصه rust-version را در بسته‌ها نادیده می‌گیرد.

--locked

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

این گزینه می‌تواند در محیط‌هایی که ساخت‌های قطعی (deterministic) مورد نیاز است، مانند خطوط لوله 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 است.

+toolchain

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

--config KEY=VALUE یا PATH

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

-C PATH

پیش از اجرای هرگونه عملیات مشخص‌شده، دایرکتوری کاری فعلی را تغییر می‌دهد. این امر بر مواردی چون محل جستجوی پیش‌فرض مانیفست پروژه (Cargo.toml) توسط cargo و همچنین دایرکتوری‌های مورد جستجو برای یافتن فایل‌هایی نظیر .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.به‌روزرسانی تمام وابستگی‌ها در فایل قفل:
cargo update
2.به‌روزرسانی تنها وابستگی‌های مشخص:
cargo update foo bar
3.تنظیم یک وابستگی خاص روی یک نسخه مشخص:
cargo update foo --precise 1.2.3

cargo(1), cargo-generate-lockfile(1)