مقدمه
علاوه بر مدیریت وابستگیهای یک پروژه خاص، Cargo یک قابلیت بسیار مفید دیگر نیز دارد: نصب
پکیجهای باینری به صورت سراسری در سیستم شما. دستور cargo install به شما اجازه میدهد تا یک
crate باینری را از crates.io یا یک منبع دیگر دانلود، با پروفایل release
کامپایل کرده و فایل اجرایی نهایی آن را در یک مکان مشترک قرار دهید تا بتوانید از آن به عنوان یک
ابزار خط فرمان (CLI) در هر جای سیستم خود استفاده کنید.
نحوه عملکرد دستور
وقتی شما cargo install <CRATE_NAME> را اجرا میکنید، Cargo سورس کد پکیج مورد نظر را
دانلود کرده و آن را کامپایل میکند. فایل اجرایی نهایی سپس به پوشه bin در دایرکتوری اصلی
نصب Cargo منتقل میشود (معمولاً در مسیر ~/.cargo/bin).
نصبکننده rustup به صورت خودکار این مسیر (~/.cargo/bin) را به متغیر محیطی PATH سیستم شما
اضافه میکند. به همین دلیل است که پس از نصب یک ابزار با cargo install، میتوانید نام آن را
مستقیماً در ترمینال خود اجرا کنید.
نصب Crateها از منابع مختلف
شما میتوانید ابزارها را از رجیستری عمومی یا مستقیماً از ریپازیتوریهای Git نصب کنید.
نصب از crates.io
این رایجترین روش است. برای نصب یک ابزار محبوب مانند ripgrep (یک جایگزین بسیار سریع برای
grep)، کافیست دستور زیر را اجرا کنید:
$ cargo install ripgrep
پس از اتمام کامپایل، میتوانید با اجرای دستور rg --version در ترمینال، از نصب موفقیتآمیز آن
اطمینان حاصل کنید.
نصب از یک ریپازیتوری Git
گاهی اوقات ممکن است بخواهید نسخهی در حال توسعه یک ابزار را مستقیماً از ریپازیتوری Git آن
نصب کنید. برای این کار از فلگ --git استفاده میکنیم:
$ cargo install --git https://github.com/sharkdp/bat
این دستور ابزار bat (یک جایگزین برای cat با قابلیتهای بیشتر مانند هایلایت کردن سینتکس) را
مستقیماً از GitHub نصب میکند.
مدیریت پکیجهای نصبشده
Cargo همچنین دستوراتی برای مشاهده، بهروزرسانی و حذف پکیجهای نصبشده ارائه میدهد.
- مشاهده لیست: برای دیدن تمام پکیجهای باینری که نصب کردهاید، از دستور cargo install
--list استفاده کنید.
- بهروزرسانی: Cargo دستور مستقیمی برای بهروزرسانی ندارد. برای آپدیت یک پکیج،
کافیست دوباره دستور نصب آن را اجرا کنید. Cargo بررسی میکند که آیا نسخه جدیدتری در
crates.io موجود است یا خیر و در صورت وجود، آن را نصب میکند. اگر میخواهید نصب مجدد
را حتی در صورت عدم وجود نسخه جدیدتر، اجبار کنید، از فلگ --force استفاده کنید.
- حذف: برای حذف یک پکیج، از دستور cargo uninstall <CRATE_NAME> استفاده کنید.
COMMAND LINE
# List all installed binary crates
$ cargo install --list
# Uninstall a crate
$ cargo uninstall ripgrep
در این درس با دستور cargo install به عنوان یک راه ساده برای نصب و استفاده از ابزارهای
نوشتهشده در Rust آشنا شدیم. این قابلیت به ما اجازه میدهد تا از اکوسیستم غنی Rust فراتر از
کتابخانهها و در قالب ابزارهای کاربردی بهرهمند شویم. در درس پایانی این فصل، به بررسی «دستورهای
سفارشی Cargo» خواهیم پرداخت و یاد میگیریم که چگونه با ایجاد اسکریپتهای سفارشی، قابلیتهای
Cargo را برای پروژه خود گسترش دهیم.