چگونه کامپایلر Rust را نصب و کانفیگ کنیم؟

نصب و راه‌اندازی کامپایلر زبان Rust
Avatar
نویسنده: علیرضا برزودی
چهارشنبه 29 مهر 1405
مطالعه: ۱۴ دقیقه ۰ نظر ۱ بازدید

Rust زبانی است که سرعتی نزدیک به C و ++C دارد، ولی بدون نیاز به مدیریت دستی حافظه، جلوی بسیاری از باگ‌های رایج را می‌گیرد. به همین دلیل برای ساخت ابزارهای خط فرمان، سرویس‌های بک‌اند، برنامه‌های شبکه‌ای و حتی بخش‌هایی از سیستم‌عامل‌ها از آن استفاده می‌شود. نصب و راه‌اندازی کامپایلر زبان Rust در ویندوز، لینوکس و مک تقریبا مسیری مشترک دارد، ولی هر سیستم‌عامل پیش‌نیازها و نکته‌های خاص خودش را دارد که باعث می‌شود اغلب افراد در میانه‌ی مسیر نصب با مشکل روبه‌رو شوند. در این مقاله از بخش آموزش برنامه‌نویسی وبلاگ پارس‌پک، به طور خلاصه کامپایلر Rust را معرفی می‌کنیم و پس از بررسی پیش‌نیازهای نصب، مراحل نصب آن را روی سیستم‌عامل‌های مختلف آموزش می‌دهیم.

کامپایلر Rust چیست و از چه اجزایی تشکیل شده است؟

کامپایلر (Compiler) برنامه‌ای است که کد خوانا برای انسان را به زبان ماشین تبدیل می‌کند تا پردازنده بتواند آن را اجرا کند. کامپایلر رسمی Rust با نام rustc شناخته می‌شود و پشت صحنه از LLVM برای تولید کد ماشینی استفاده می‌کند. یکی از ویژگی‌های مهم rustc این است که قواعد مالکیت (Ownership) و قرض‌گیری (Borrowing) را همان لحظه‌ی کامپایل بررسی می‌کند. یعنی خیلی از خطاهای مربوط به حافظه، پیش از اجرای برنامه و در همان مرحله‌ی کامپایل به شما اعلام می‌شوند.

مجموعه ابزار یا Toolchain در Rust

نصب Rust در سیستم‌عامل‌های مختلف، صرفا به نصب یک کامپایلر ساده محدود نمی‌شود. شما در حال نصب یک محیط یکپارچه هستید که به آن Toolchain می‌گویند. برای اینکه بدانید چه مواردی روی سرور یا سیستم شما نصب می‌شود، اجزای اصلی آن را بررسی می‌کنیم:

  • rustup: مدیر نصب و نسخه‌های Rust است. با آن می‌توانید Rust را نصب، آپدیت، حذف یا بین نسخه‌های مختلف جابه‌جا کنید.
  • rustc: خود کامپایلر که کد منبع را به فایل اجرایی تبدیل می‌کند.
  • Cargo: ابزار ساخت پروژه و مدیریت پکیج‌ها (Package Manager). ساخت پروژه، دانلود وابستگی‌ها از crates.io، کامپایل و اجرای برنامه همه با آن انجام می‌شود.
  • rust-std: کتابخانه استاندارد (Standard Library) که برنامه‌های شما به آن نیاز دارند.
  • rustfmt و Clippy: اولی کد را مطابق استایل استاندارد مرتب می‌کند و دومی مثل یک بازبین، کدهای مشکوک یا غیربهینه را نشان می‌دهد.
  • rust-docs: مستندات آفلاین که با دستور rustup doc در مرورگر باز می‌شود.

معرفی کانال‌های انتشار یا Release Channels در Rust

توسعه‌دهندگان زبان Rust به‌روزرسانی‌های این زبان را در سه کانال مجزا ارائه می‌دهند. درک تفاوت این کانال‌ها پیش از نصب، به شما کمک می‌کند تا نسخه مناسب پروژه خود را انتخاب کنید. در ادامه این نسخه‌ها را بررسی می‌کنیم:

  • نسخه پایدار (Stable): مناسب برای محیط پروداکشن و پروژه‌های تجاری. این نسخه بالاترین سطح پایداری را دارد و هر شش هفته یک‌بار آپدیت می‌شود.
  • نسخه بتا (Beta): نسخه‌ای برای تست ویژگی‌هایی که تایید شده‌اند و قرار است در آپدیت بعدی به نسخه پایدار اضافه شوند.
  • نسخه شبانه (Nightly): شامل جدیدترین ویژگی‌های آزمایشی راست است که هنوز تایید نهایی نشده‌اند و احتمال بروز باگ در اجرای آن‌ها وجود دارد.

نکته:

اگر در شروع مسیر هستید و نمی‌دانید کدام کانال برای شما مناسب‌تر است، جای نگرانی نیست. ابزار مدیر نصب که rustup نام دارد، در فرایند راه‌اندازی، به صورت پیش‌فرض نسخه Stable را برای شما نصب می‌کند.

پیش‌نیازهای ضروری قبل از نصب کامپایلر Rust

Rust برای ساختن فایل اجرایی نهایی به یک لینکر (Linker) نیاز دارد. لینکر تکه‌های کد کامپایل‌شده را به هم وصل می‌کند و فایل اجرایی می‌سازد. Rust خودش لینکر ندارد و از ابزارهای سیستم استفاده می‌کند، برای همین باید قبل از نصب، این ابزارها را آماده کنید.

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

  • ویندوز: نصب Microsoft C++ Build Tools که در Visual Studio Installer با نام «++Desktop development with C» پیدا می‌شود. این بسته شامل MSVC و Windows SDK است. حجم آن چند گیگابایت است، پس فضای خالی کافی روی درایو در نظر بگیرید.
  • لینوکس: یک کامپایلر C (مثل gcc یا clang) به‌همراه ابزار curl. در توزیع‌های دبیان‌محور بسته‌ی build-essential همه‌ی این‌ها را دربر می‌گیرد.
  • مک: ابزارهای خط فرمان Xcode یعنی Xcode Command Line Tools که با یک دستور نصب می‌شوند.

علاوه بر این‌ها، برای دانلود فایل‌های Rust، به یک اتصال اینترنت پایدار لازم دارید. فضای مورد نیاز Rust با پروفایل پیش‌فرض حدود یک گیگابایت یا کمی بیشتر است. اگر روی یک سرور کار می‌کنید و کاربر معمولی دارید، نیازی نیست با دسترسی root نصب کنید. rustup همه‌چیز را داخل پوشه‌ی خانگی کاربر نصب می‌کند.

بهترین سرور مجازی لینوکس را از پارس‌پک تهیه کنید

خرید VPS لینوکس پارس‌پک بهره‌مندی از منابع مستقل را در کنار پایداری و امنیت بالا تضمین می‌کند. این سرویس با پرداخت دوره‌ای و پلن‌های ثابت بهترین انتخاب برای کسب‌وکارهای شماست.

آموزش گام‌به‌گام نصب کامپایلر Rust در ویندوز

در ویندوز، اول باید ابزارهای ++C را آماده کنید و بعد سراغ خود Rust بروید. مراحل کار به ترتیب زیر است:

به صفحه‌ی رسمی نصب Rust در سایت rust-lang.org بروید و فایل rustup-init.exe را متناسب با نسخه‌ی ویندوز خود (معمولاً ۶۴ بیتی) دانلود کنید.

صفحه‌ی رسمی نصب Rust
صفحه‌ی رسمی نصب Rust

اگر Microsoft C++ Build Tools را ندارید، آن را از سایت مایکروسافت نصب کنید. در Visual Studio Installer گزینه‌ی «++Desktop development with C» را تیک بزنید و نصب را کامل کنید. در بعضی نسخه‌ها خود rustup-init هم وجود نداشتن این ابزار را تشخیص می‌دهد و پیشنهاد نصب آن را می‌دهد.

فایل rustup-init.exe را اجرا کنید. یک پنجره‌ی ترمینال باز می‌شود و سه گزینه نشان می‌دهد:

  • نصب سریع (با پیش‌نیازها).
  • نصب دستی.
  • نصب بدون پیش‌نیازها.
فایل rustup-init.exe
فایل rustup-init.exe

عدد 1 را وارد کنید و Enter بزنید تا نصب سریع انجام شود. ابتدا Visual Studio Installer نمایش داده می‌شود تا پیش نیازها نصب شود سپس Toolchain پایدار (Stable) را برای معماری سیستم شما نصب می‌کند.

برنامه Visual Studio Installer
صفحه Visual Studio Installer

پس از اتمام نصب پیش‌نیازها با Visual Studio Installer وقتی پیام موفقیت نمایش داده شد، عدد 1 را وارد کنید تا نصب Rust به‌صورت استاندارد انجام شود.

نصب صحیح Rust
وارد کردن عدد ۱ برای نصب Rust

پس از مشاهده پیام نصب موفق، برای تست نصب باید یک PowerShell یا Command Prompt جدید باز کنید. باید ترمینال جدید باشد، چون تغییرات PATH فقط در پنجره‌های تازه اعمال می‌شود.

تغییرات PATH
تغییرات PATH

اگر مدیریت بسته‌ها با winget را ترجیح می‌دهید، دستور زیر هم rustup را نصب می‌کند و بعد از آن باید یک بار rustup default stable را اجرا کنید تا Toolchain پایدار دانلود شود:

winget install Rustlang.Rustup

پوشه‌ی ابزارها یعنی Cargo و rustc بعد از نصب در مسیر %USERPROFILE%\.cargo\bin قرار می‌گیرد و rustup این مسیر را خودکار به PATH اضافه می‌کند.

آموزش نصب کامپایلر Rust در لینوکس

در لینوکس، نصب فرایند ساده‌تری دارد و با یک اسکریپت رسمی انجام می‌شود که در ادامه به آن می‌پردازیم:

اول ابزارهای لازم را نصب می‌کنیم و بعد سراغ rustup می‌رویم. سپس یک ترمینال باز کنید و ابزارهای ساخت را نصب کنید. در اوبونتو و دبیان از این دستور استفاده کنید:

sudo apt update && sudo apt install build-essential curl -y

در فدورا می‌توانید از دستور sudo dnf install gcc curl و در آرچ‌لینوکس از sudo pacman -S base-devel curl استفاده کنید.

اسکریپت نصب rustup را با این دستور اجرا کنید:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

وقتی سه گزینه‌ی نصب نمایش داده شد، عدد 1 را بزنید یا فقط Enter بزنید تا نصب پیش‌فرض استاندارد انجام شود. بعد از پایان نصب، برای اینکه ترمینال فعلی هم rustc و cargo را بشناسد، این دستور را اجرا کنید:

source "$HOME/.cargo/env"

با باز کردن یک ترمینال جدید هم همین نتیجه را می‌گیرید، چون rustup مسیر $HOME/.cargo/bin را به فایل‌های پروفایل شل اضافه کرده است.

نکته:

بعضی توزیع‌ها بسته‌ای به اسم rustc یا cargo در مخزن خودشان دارند. این نسخه‌ها معمولاً قدیمی‌تر از نسخه‌ی رسمی‌اند و قابلیت جابه‌جایی راحت بین کانال‌ها را ندارند. برای همین توصیه می‌کنیم از rustup استفاده کنید. اگر خودتان روی یک سرور مجازی لینوکس پروژه‌ی Rust را توسعه یا اجرا می‌کنید، همین روش دقیقاً مناسب است، چون بدون دسترسی root و مستقل از بسته‌های سیستمی کار می‌کند.

آموزش نصب کامپایلر Rust در مک

نصب روی macOS تقریبا شبیه لینوکس است و فقط پیش‌نیاز آن فرق می‌کند. مراحل را با هم مرور می‌کنیم:

برنامه‌ی Terminal را باز کنید و با دستور زیر ابزارهای خط فرمان Xcode را نصب کنید:

xcode-select --install

حالا یک پنجره باز می‌شود که باید نصب را تایید کنید. اگر قبلاً نصب شده باشد، پیامی می‌گیرید که این ابزارها موجود هستند.

اسکریپت رسمی rustup را با دستور زیر اجرا کنید:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

مانند فرایند نصب در لینوکس گزینه‌ی 1، یعنی نصب استاندارد را انتخاب کنید و منتظر بمانید تا فرایند تمام شود. حالا ترمینال را ببندید و دوباره باز کنید، یا دستور زیر را وارد کنید تا تنظیمات محیطی بارگذاری شود:

source "$HOME/.cargo/env"

این روش هم روی مک‌های اینتل و هم روی مک‌های اپل سیلیکون (M1 و نسخه‌های بعدی) کار می‌کند و rustup خودش معماری درست را تشخیص می‌دهد. اگر Homebrew دارید، با دستور brew install rustup هم می‌توانید rustup را نصب کنید. البته در این حالت باید بعدش دستور rustup-init را اجرا کنید تا Toolchain نصب شود.

تست صحت نصب و اجرای اولین برنامه با Rust

حالا وقت آن است که مطمئن شویم همه‌چیز درست کار می‌کند. یک ترمینال جدید باز کنید و این دو دستور را اجرا کنید تا نسخه‌ی کامپایلر و Cargo نمایش داده شود:

rustc --version 
cargo --version

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

مراحل ساخت و اجرای اولین برنامه در Rust

مراحل ساخت و اجرای اولین برنامه این‌هاست:

با Cargo یک پروژه‌ی جدید بسازید:

cargo new hello_rust

با دستور زیر وارد پوشه‌ی پروژه شوید:

cd hello_rust

فایل src/main.rs را باز کنید. Cargo خودش یک برنامه‌ی نمونه ساخته است که چنین کدی دارد:

fn main() { println!("Hello, world!"); }

اکنون با کد زیر برنامه را کامپایل و اجرا کنید:

cargo run

اگر عبارت !Hello, world را در خروجی دیدید، کامپایلر، لینکر و Cargo همگی درست کار می‌کنند.

دستور cargo run در واقع دو کار را با هم انجام می‌دهد:

  • پروژه را کامپایل می‌کند.
  • فایل اجرایی ساخته‌شده را اجرا می‌کند.

فایل نهایی داخل پوشه‌ی target/debug ساخته می‌شود. اگر فقط بخواهید کامپایل کنید، از cargo build استفاده کنید و برای ساخت نسخه‌ی بهینه‌شده برای انتشار هم cargo build –release را بزنید.

اگر بخواهید بدون Cargo و مستقیم با کامپایلر کار کنید، یک فایل به نام main.rs با همان کد بالا بسازید و در همان پوشه دستور rustc main.rs را بزنید. بعد از آن یک فایل اجرایی ساخته می‌شود. در لینوکس و مک با ./main و در ویندوز با main.exe آن را اجرا می‌کنید.

نحوه آپدیت و حذف کامپایلر Rust

یکی از مزیت‌های نصب با rustup این است که آپدیت و حذف Rust هم فقط با یک دستور انجام می‌شود. در ادامه هر دو را می‌بینیم:

آپدیت Rust به آخرین نسخه

با دستور زیر همه‌ی Toolchainهای نصب‌شده به آخرین نسخه‌ی خود می‌رسند:

rustup update

این دستور برای هر سه سیستم‌عامل یکسان است. اگر فقط بخواهید ببینید آپدیتی وجود دارد یا نه، rustup check کافی است. برای آپدیت خود rustup هم می‌توانید از rustup self update کمک بگیرید.

تغییر کانال و نسخه‌ی Rust

اگر لازم شد به کانال دیگری بروید، اول آن را نصب کنید و بعد پیش‌فرض کنید. برای مثال برای نصب Nightly از این دستورها استفاده می‌شود:

rustup toolchain install nightly 
rustup default nightly

با rustup show هم می‌توانید ببینید الان کدام Toolchain فعال است. برای برگشت به نسخه‌ی پایدار هم کافی است rustup default stable را بزنید.

حذف کامل Rust

اگر دیگر به Rust نیاز ندارید، با این دستور rustup همه‌ی Toolchainها، ابزارها و تنظیمات مربوط به PATH را که خودش اضافه کرده پاک می‌کند:

rustup self uninstall

در ویندوز، Microsoft C++ Build Tools که برای Rust نصب کرده بودید جداگانه از بخش Apps and features حذف می‌شود. rustup به آن دست نمی‌زند، چون ممکن است برنامه‌های دیگری هم از آن استفاده کنند.

رفع خطاهای رایج هنگام نصب کامپایلر Rust

بیشتر مشکلات نصب Rust به چند دلیل مشخص برمی‌گردد. رایج‌ترین آن‌ها را با راه‌حل مرور می‌کنیم.

  • خطای linker not found: این خطا مهم‌ترین و پرتکرارترین مشکل است. در ویندوز معمولاً پیام «linker link.exe not found» می‌گیرید که یعنی Microsoft C++ Build Tools نصب نیست یا «++Desktop development with C» را انتخاب نکرده‌اید و به درستی نصب نشده است. در لینوکس پیام «linker cc not found» ظاهر می‌شود و با نصب build-essential یا gcc حل می‌شود. در مک هم دستور xcode-select –install را اجرا کنید.
  • خطای command not found برای rustc یا cargo: اگر بعد از نصب، ترمینال rustc را نمی‌شناسد، یعنی مسیر ~/.cargo/bin در PATH نیست یا هنوز ترمینال جدید باز نکرده‌اید. پنجره‌ی ترمینال را ببندید و دوباره باز کنید. در لینوکس و مک دستور source “$HOME/.cargo/env” را هم امتحان کنید. اگر باز هم مشکل ماند، فایل‌های پروفایل شل مثل ~/.bashrc یا ~/.zshrc< را بررسی کنید که خط مربوط به Cargo در آن‌ها باشد.
  • خطای اتصال و دانلود (SSL یا Timeout): گاهی دانلود فایل‌ها از سرورهای Rust قطع می‌شود یا کند است. ابتدا اتصال اینترنت و تنظیمات پروکسی یا فایروال را چک کنید. اگر از پروکسی استفاده می‌کنید، متغیرهای محیطی https_proxy و http_proxy را تنظیم کنید. در صورتی که دسترسی مستقیم به سرور رسمی ممکن نبود، rustup به شما اجازه می‌دهد با متغیرهای RUSTUP_DIST_SERVER و RUSTUP_UPDATE_ROOT آدرس یک آینه (Mirror) معتبر را مشخص کنید.
  • تداخل با نسخه‌ی نصب‌شده از مخزن توزیع: اگر قبلاً rustc را با apt یا dnf نصب کرده‌اید، ممکن است rustup هشدار بدهد که نسخه‌ی دیگری روی سیستم هست. بهتر است آن نسخه را با مدیر بسته‌ی توزیع حذف کنید و بعد نصب را با rustup انجام دهید تا PATH دچار تداخل نشود.
  • قفل شدن فایل‌ها توسط آنتی‌ویروس در ویندوز: بعضی آنتی‌ویروس‌ها موقع نصب یا کامپایل، فایل‌های اجرایی تازه‌ساخته‌شده را موقتاً قفل یا قرنطینه می‌کنند و خطاهایی مثل «Access is denied» می‌بینید. اگر با این مشکل روبه‌رو شدید، پوشه‌های .cargo و .rustup و پوشه‌ی پروژه را به لیست استثناهای آنتی‌ویروس اضافه کنید و دوباره تلاش کنید.

جمع‌بندی

حالا می‌دانید چطور با rustup در هر سه سیستم‌عامل، کامپایلر و Cargo را نصب کنید، نصب را با یک پروژه‌ی واقعی تست کنید و در صورت نیاز آپدیت یا حذفش کنید. این مهارت پایه به شما کمک می‌کند که بدون دردسرهای انجام تنظیمات، مستقیم سراغ یادگیری خود زبان بروید و محیط توسعه‌ای بسازید که همیشه به‌روز و قابل مدیریت است. اگر می‌خواهید پروژه‌های Rust خود را روی یک محیط پایدار و همیشه در دسترس اجرا یا تست کنید، سرور مجازی لینوکس پارس‌پک با دسترسی کامل root گزینه‌ی مناسبی است.

سوالات متداول

۱. آیا برای نصب Rust حتماً باید rustup را استفاده کنم؟

نه، الزامی نیست، ولی روش پیشنهادی خود تیم Rust است. rustup نصب، آپدیت و تعویض نسخه‌ها را ساده می‌کند و همیشه آخرین نسخه‌ی پایدار را در اختیار شما می‌گذارد. نسخه‌های موجود در مخزن بعضی توزیع‌های لینوکس معمولاً عقب‌تر هستند.

۲. تفاوت rustc و Cargo چیست و کدام را باید استفاده کنم؟

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

۳. چرا در ویندوز به Visual Studio C++ Build Tools نیاز دارم؟

Rust برای ساخت فایل اجرایی نهایی به یک لینکر و کتابخانه‌های سیستمی نیاز دارد. در ویندوز، Toolchain پیش‌فرض (MSVC) از لینکر و SDK موجود در Build Tools استفاده می‌کند. بدون آن، کامپایل با خطای linker not found متوقف می‌شود.

۴. چطور نسخه‌ی نصب‌شده‌ی Rust را بفهمم؟

دستور rustc –version نسخه‌ی کامپایلر و cargo –version نسخه‌ی Cargo را نشان می‌دهد. برای دیدن Toolchain فعال و کانال‌های نصب‌شده هم از rustup show استفاده کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


ارسال دیدگاه در وبلاگ پارس‌پک را مطالعه کرده و آن‌ها را می‌پذیرم.