مقدمه

علاوه بر مدیریت وابستگی‌های یک پروژه خاص، 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> استفاده کنید.
Copy Icon COMMAND LINE
# List all installed binary crates
$ cargo install --list

# Uninstall a crate
$ cargo uninstall ripgrep

در این درس با دستور cargo install به عنوان یک راه ساده برای نصب و استفاده از ابزارهای نوشته‌شده در Rust آشنا شدیم. این قابلیت به ما اجازه می‌دهد تا از اکوسیستم غنی Rust فراتر از کتابخانه‌ها و در قالب ابزارهای کاربردی بهره‌مند شویم. در درس پایانی این فصل، به بررسی «دستورهای سفارشی Cargo» خواهیم پرداخت و یاد می‌گیریم که چگونه با ایجاد اسکریپت‌های سفارشی، قابلیت‌های Cargo را برای پروژه خود گسترش دهیم.