روش رایج نصب Rust روی Ubuntu استفاده از rustup است؛ این ابزار کامپایلر rustc، مدیر بسته و ساخت Cargo و نسخههای toolchain را مدیریت میکند. ابتدا ابزارهای ساخت سیستم را نصب کنید، سپس rustup را با کاربر عادی راهاندازی و یک پروژه کوچک را کامپایل کنید.
پیشنیازها
یک Ubuntu تحت پشتیبانی، کاربر عادی با دسترسی sudo برای نصب بستههای سیستم و اتصال HTTPS لازم است. روی Ubuntu 20.04 وضعیت پوشش امنیتی سیستم را بررسی کنید. برای نصب تازه، نسخه LTS متناسب با زیرساخت پروژه را انتخاب کنید.
sudo apt update
sudo apt install build-essential curl ca-certificates
command -v rustc
command -v cargo
اگر از قبل Rust نصب است، مسیر آن را ثبت کنید. مخلوطکردن rustc از APT با toolchain نصبشده توسط rustup ممکن است نسخه ناخواستهای را در PATH فعال کند.
۱. نصب rustup
دستور نصب را از صفحه رسمی Rust دریافت کنید. برای امکان بررسی قبل از اجرا، میتوان اسکریپت رسمی را جداگانه دانلود و مطالعه کرد:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-init.sh
less rustup-init.sh
sh rustup-init.sh
نصب را با کاربر عادی انجام دهید؛ sudo برای خود rustup لازم نیست. تنظیم پیشفرض معمولاً شاخه stable را نصب میکند. پس از پایان، یک shell جدید باز کنید یا محیط کاربر را بارگذاری کنید:
source "$HOME/.cargo/env"
rustc --version
cargo --version
rustup show
۲. ساخت پروژه Cargo
mkdir -p ~/projects
cd ~/projects
cargo new hello-hostnegar
cd hello-hostnegar
cargo run
cargo test
Cargo فایل Cargo.toml و پوشه src را میسازد. موفقیت cargo run علاوه بر نصب کامپایلر، کارکرد linker و زنجیره ساخت را نیز تا حد این مثال نشان میدهد. خروجی پروژه ساده جای تست dependencyهای برنامه واقعی را نمیگیرد.
۳. قالببندی و بررسی کد
rustup component add rustfmt clippy
cargo fmt --check
cargo clippy
cargo build --release
فایل اجرایی حالت release در target/release قرار میگیرد. انتقال این فایل به سرور دیگر ممکن است به معماری CPU و کتابخانههای سیستم وابسته باشد؛ خروجی ساختهشده روی رایانه خود را بدون آزمون روی هر VPS قابل اجرا فرض نکنید.
۴. نسخه ابزارها را در پروژه ثبت کنید
برای اینکه CI و توسعهدهندگان نسخه هماهنگ داشته باشند، فایل rust-toolchain.toml را با نسخه stable مشخصی که تست کردهاید در پروژه نگه دارید. استفاده از واژه stable همیشه همان نسخه امروز را نصب نمیکند؛ با انتشار بعدی تغییر میکند. مقدار rust-version در Cargo.toml حداقل نیاز پروژه را اعلام میکند، نه نسخه دقیق ابزار نصبشده را.
برای برنامه اجرایی، Cargo.lock را در کنترل نسخه ثبت و در ساخت تکرارپذیر از گزینه locked استفاده کنید:
cargo build --release --locked
۵. بهروزرسانی کنترلشده
rustup update stable
rustup show
cargo test --locked
بهروزرسانی را ابتدا در شاخه توسعه یا CI اجرا کنید. ارتقای toolchain با تغییر dependencyها دو کار جداست؛ تغییر همه وابستگیها هنگام نصب اولیه تشخیص علت خطا را سخت میکند.
رفع خطاهای رایج
linker cc پیدا نمیشود
وجود build-essential و مسیر کامپایلر C را بررسی کنید. بعضی کتابخانهها به headerهای بومی مانند OpenSSL نیز نیاز دارند؛ نام بسته را از پیام خطای همان crate استخراج کنید.
cargo یا rustc پیدا نمیشود
مسیر .cargo/bin باید در PATH همان کاربر باشد. shell جدید باز کنید و با command -v مسیر binary را ببینید.
ساخت با کمبود حافظه متوقف میشود
تعداد jobهای همزمان را متناسب با منابع کاهش دهید و ساخت را در محیط مناسب انجام دهید؛ معیار حافظه یک پروژه به پروژه دیگر قابل تعمیم نیست.
اجرای سرویس روی سرور
برنامه نهایی را با حساب محدود و سرویس systemd اجرا کنید، نه با cargo run در نشست SSH. متغیرهای محرمانه، لاگ، restart و health check را جدا تنظیم کنید. برای سرویس وب نیز TLS و reverse proxy را مطابق معماری پروژه در نظر بگیرید.
منابع رسمی
بازبینی منابع: ۱۸ اکتبر ۲۰۲۶.