Rust'ı kurmanın resmî ve önerilen yolu rustup aracıdır: Linux ve macOS'ta tek bir curl komutuyla, Windows'ta rust-lang.org üzerindeki kurulum programıyla kurulur ve size derleyici rustc ile paket yöneticisi Cargo'yu birlikte getirir. Kurulumdan sonra rustc --version ile doğrulama yapar, cargo new ile proje oluşturur ve cargo run ile ilk programınızı çalıştırırsınız.

Bu yazıda kurulumu işletim sistemine göre adım adım, bağlayıcı (linker) gereksinimi, güncelleme ve kaldırma, sürüm kanalları, rustc ile tek dosya derleme ve Cargo'nun build, run, check komutlarıyla birlikte anlatıyoruz. Komut çıktılarının hepsi Rust 1.99.1 ile gerçekten çalıştırılarak alındı. Rust'ın ne olduğunu merak ediyorsanız önce Rust nedir yazısına, serinin bütününe ise Rust öğrenme rehberi sayfasından ulaşabilirsiniz.

rustup nedir ve neyi kurar?

rustup nedir ve neyi kurar?

rustup, Rust sürümlerini ve onlarla birlikte gelen araçları yöneten bir komut satırı aracıdır. Kurulum sırasında en güncel kararlı (stable) Rust derleyicisini indirir; bu nedenle kurulum için internet bağlantısı gerekir. Resmî kurulumla birlikte yalnızca derleyici değil, Cargo (derleme sistemi ve paket yöneticisi), rustfmt (kod biçimlendirici), Clippy (ek lint aracı) ve belgelerin yerel bir kopyası da gelir. Cargo kitabının kurulum sayfası da Cargo'yu edinmenin en kolay yolunun rustup ile kararlı Rust'ı kurmak olduğunu belirtir.

rustup'ın asıl gücü birden çok sürümü yan yana tutabilmesidir. Rust'ın üç sürüm kanalı vardır: stable, beta ve nightly. The Book'un G ekine göre her gece yeni bir nightly sürüm çıkar, her altı haftada bir beta dalı ayrılır ve altı hafta sonra o beta kararlı sürüm olur. Rust ekibi yalnızca en son kararlı sürümü destekler; yeni sürüm çıktığında bir önceki sürümün desteği biter. Bu yüzden düzenli olarak güncellemeniz önerilir.

Linux ve macOS üzerinde kurulum

Terminali açın ve aşağıdaki komutu çalıştırın. Komut bir kurulum betiği indirip çalıştırır; betik rustup'ı kurar, rustup da en son kararlı Rust sürümünü indirir. Kurulum sırasında parolanız istenebilir. Kurulum başarılı olursa ekranda aşağıdaki satırı görürsünüz:

bash
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
# çıktı: Rust is installed now. Great!

Rust, derlediği parçaları tek bir çalıştırılabilir dosyada birleştirmek için bir bağlayıcıya (linker) ihtiyaç duyar. Sisteminizde büyük olasılıkla zaten vardır; bağlayıcı hatası alırsanız bir C derleyicisi kurmanız gerekir, çünkü C derleyicileri genellikle bir bağlayıcıyla birlikte gelir. Ayrıca bazı yaygın Rust paketleri C koduna bağımlıdır ve derlenmek için C derleyicisi ister. macOS'ta xcode-select --install komutu C derleyicisini kurar; Linux'ta dağıtımınızın belgesine göre GCC ya da Clang kurun. Ubuntu kullanıyorsanız build-essential paketi bu işi görür. Linux sunucu yönetimine yeniyseniz Linux nedir yazısı temel kavramları özetler.

bash
# macOS: C derleyicisi ve bağlayıcı
xcode-select --install

# Ubuntu: GCC ve bağlayıcı
sudo apt install build-essential

Windows üzerinde kurulum

Windows'ta https://www.rust-lang.org/tools/install adresindeki talimatları izleyin ve oradaki kurulum programını (rustup-init.exe) çalıştırın. Kurulumun bir aşamasında Visual Studio kurmanız istenir; bu adım bağlayıcıyı ve programları derlemek için gereken yerel kütüphaneleri sağlar. Bu adımı atlarsanız derleme sırasında bağlayıcı hataları alırsınız. The Book, kitaptaki komutların hem cmd.exe hem PowerShell'de çalıştığını, fark olduğunda ayrıca belirtildiğini söyler.

Windows'ta derlediğiniz programın uzantısı .exe olur ve yanında hata ayıklama bilgisini tutan bir .pdb dosyası oluşur. Programı çalıştırırken Linux ve macOS'taki ./main yerine .\main yazmanız gerekir; bu küçük fark yeni başlayanların sık takıldığı bir noktadır.

Kurulumu doğrulama ve PATH sorunları

Kurulumu doğrulama ve PATH sorunları

Kurulum bittikten sonra yeni bir terminal açın ve sürümü sorgulayın. Çıktı, sürüm numarasını, commit kimliğini ve commit tarihini içerir. Aynı şekilde cargo --version da Cargo'nun sürümünü yazdırır:

bash
rustc --version
# çıktı: rustc 1.99.1 (58cf8f9c3 2026-10-13)
cargo --version
# çıktı: cargo 1.99.1 (5f94df478 2026-08-27)

Sürüm bilgisi yerine komutun bulunamadığını söyleyen bir hata alırsanız, Rust'ın araç klasörü büyük olasılıkla PATH ortam değişkeninde değildir. Değişkenin içeriğini Windows CMD'de echo %PATH%, PowerShell'de echo $env:Path, Linux ve macOS'ta echo $PATH ile kontrol edebilirsiniz. Kurulumdan önce açılmış bir terminal penceresi ortam değişkenlerinin eski hâlini kullanmaya devam edebilir; bu yüzden doğrulamayı yeni bir pencerede yapın. Her şey doğru göründüğü hâlde sorun sürüyorsa resmî topluluk sayfasındaki yardım kanallarına başvurabilirsiniz.

Güncelleme, kaldırma ve sürüm kanalları

rustup ile kurulmuş bir Rust'ı güncellemek ve kaldırmak tek komuttur. Nightly kanalını denemek isterseniz onu ayrı bir araç zinciri (toolchain) olarak kurabilir, kurulu araç zincirlerini listeleyebilir ve yalnızca belirli bir proje klasöründe nightly kullanılmasını sağlayabilirsiniz:

bash
rustup update                    # en son kararlı sürüme güncelle
rustup self uninstall            # Rust ve rustup'ı kaldır
rustup doc                       # yerel belgeleri tarayıcıda aç
rustup toolchain install nightly # nightly araç zincirini kur
rustup toolchain list            # kurulu araç zincirlerini listele
rustup override set nightly      # yalnızca bu klasörde nightly kullan

The Book'a göre deneysel özellikler feature bayraklarının arkasında yalnızca nightly sürümde açılır; beta ve stable sürümlerde bu bayraklar kullanılamaz. Bu yüzden öğrenirken ve üretim kodunda kararlı kanalda kalmanız en güvenli tercihtir. Cargo komutlarına +nightly gibi bir önek ekleyerek tek bir komutu başka bir araç zinciriyle çalıştırmak da mümkündür; cargo new belgesi, rustup ile kurulmuş Cargo'da + ile başlayan ilk argümanın araç zinciri adı olarak yorumlandığını belirtir.

İlk program: rustc ile Merhaba dünya

Kodunuzu nerede tuttuğunuz Rust için önemli değildir; The Book ev dizininizde bir projects klasörü açmanızı önerir. Rust kaynak dosyaları her zaman .rs uzantısıyla biter ve birden çok kelimeden oluşan dosya adlarında kelimeler alt çizgiyle ayrılır (merhaba_dunya.rs gibi). Aşağıdaki kodu main.rs adıyla kaydedin:

rust
fn main() {
    println!("Merhaba, dünya!");
}
// çıktı: Merhaba, dünya!
bash
rustc --edition 2024 main.rs
./main        # Windows'ta: .\main
# çıktı: Merhaba, dünya!

Bu küçük programın üç önemli parçası var. fn main(), parametre almayan ve değer döndürmeyen main adlı fonksiyonu tanımlar; main her çalıştırılabilir Rust programında ilk çalışan koddur. println! bir fonksiyon değil makrodur; sondaki ünlem işareti bunu belirtir ve makroların normal fonksiyonlarla aynı kurallara uymadığını hatırlatır. Satır sonundaki noktalı virgül ise ifadenin bittiğini gösterir. Fonksiyon gövdeleri her zaman süslü parantez içinde olmak zorundadır ve açılış parantezini fonksiyon bildirimiyle aynı satıra, araya bir boşluk koyarak yazmak iyi stil kabul edilir.

Rust, önceden derlenen (ahead-of-time compiled) bir dildir. rustc derlemesi bittiğinde elinizde bağımsız çalışan bir dosya olur ve bu dosyayı Rust kurulu olmayan birine verdiğinizde de çalışır. Python ya da JavaScript dosyalarını çalıştırmak için ise karşı tarafta ilgili yorumlayıcının kurulu olması gerekir. Bunun bedeli, derleme ve çalıştırmanın iki ayrı adım olmasıdır.

Cargo ile proje oluşturma

Basit programlar için rustc yeterlidir, ama proje büyüdükçe birden çok dosyayı, bağımlılıkları ve derleme seçeneklerini yönetmek gerekir. Cargo, Rust'ın derleme sistemi ve paket yöneticisidir; kodunuzu derler, bağımlılık olarak kullandığınız kütüphaneleri (Rust'ta crate denir) indirir ve onları da derler. Rust projelerinin büyük çoğunluğu Cargo kullanır. Yeni bir proje oluşturalım:

bash
cargo new merhaba_cargo
cd merhaba_cargo

Bu komut merhaba_cargo adında bir klasör ve içinde bir Cargo.toml dosyası ile src/main.rs oluşturur; main.rs içinde hazır bir Merhaba dünya programı bulunur. Klasör zaten bir Git deposunun içinde değilse yeni bir Git deposu ve .gitignore dosyası da hazırlanır. Bu davranışı --vcs bayrağıyla değiştirebilirsiniz; --vcs none hiçbir sürüm kontrol dosyası oluşturmaz. Oluşan Cargo.toml şöyledir:

toml
[package]
name = "merhaba_cargo"
version = "0.1.0"
edition = "2024"

[dependencies]

Dosya TOML (Tom's Obvious, Minimal Language) biçimindedir. [package] başlığı altındaki üç satır, Cargo'nun derleme için ihtiyaç duyduğu paket adını, sürümünü ve kullanılacak Rust edition'ını belirtir. [dependencies] bölümü projenizin bağımlılıklarını listelemek içindir. Cargo kaynak dosyalarınızın src klasöründe olmasını bekler; üst klasör README, lisans ve yapılandırma dosyaları içindir. Bağımlılık ekleme, feature'lar ve profiller için Cargo.toml ve bağımlılıklar yazısına bakın.

Cargo'suz başladığınız bir projeyi Cargo'ya çevirmek de kolaydır: kodu src klasörüne taşıyıp cargo init çalıştırırsanız uygun bir Cargo.toml oluşturulur. cargo new --lib ise çalıştırılabilir program yerine src/lib.rs içeren bir kütüphane paketi oluşturur; varsayılan seçenek --bin'dir. Cargo'nun proje düzeni sayfasına göre ek çalıştırılabilir dosyalar src/bin/, entegrasyon testleri tests/, örnekler examples/, performans ölçümleri benches/ klasörüne konur.

build, run, check ve --release

build, run, check ve --release: cargo new ad, cargo build, cargo run, cargo check

Proje klasöründe cargo build çalıştırdığınızda Cargo projeyi derler ve çalıştırılabilir dosyayı geçerli klasöre değil target/debug/ altına koyar. Rust 1.99.1 ile aldığımız gerçek çıktı aşağıdadır (yalnızca uzun proje yolunu kısalttık):

bash
cargo build
#    Compiling merhaba_cargo v0.1.0 (C:\...\merhaba_cargo)
#     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.27s
cargo run
#     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s
#      Running `target\debug\merhaba_cargo.exe`
# çıktı: Hello, world!
cargo check
#     Checking merhaba_cargo v0.1.0 (C:\...\merhaba_cargo)
#     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.05s
cargo build --release
#    Compiling merhaba_cargo v0.1.0 (C:\...\merhaba_cargo)
#     Finished `release` profile [optimized] target(s) in 0.17s

İlk cargo build proje kökünde bir Cargo.lock dosyası da oluşturur. Bu dosya bağımlılıkların tam sürümlerini kaydeder ve Cargo tarafından yönetilir; elle düzenlemeniz gerekmez. cargo run derleme ve çalıştırmayı tek komutta yapar. Dikkat ederseniz bu çalıştırmada Compiling satırı görünmedi: Cargo dosyaların değişmediğini fark edip yeniden derlemeden mevcut programı çalıştırdı. Kaynak kodu değiştirseydiniz önce yeniden derlerdi.

cargo check, kodun derlenip derlenmediğini kontrol eder ama çalıştırılabilir dosya üretmez. Bu adımı atladığı için genellikle cargo build'den çok daha hızlıdır; kod yazarken sık sık cargo check çalıştırmak, programın hâlâ derlendiğinden emin olmanın pratik bir yoludur. Programınız kullanıcıya verilmeye hazır olduğunda cargo build --release ile optimizasyonları açarak derlersiniz; çıktı target/release/ altına yazılır. Optimizasyonlar programı hızlandırır ama derleme süresini uzatır. Programın çalışma süresini ölçecekseniz mutlaka release derlemesiyle ölçün.

KomutNe yaparÇıktı yeri
cargo new adYeni paket oluştururad/ klasörü
cargo buildDebug derlemesi yapartarget/debug/
cargo runGerekirse derler, sonra çalıştırırtarget/debug/
cargo checkYalnızca derlenebilirliği denetlerÇalıştırılabilir dosya üretmez
cargo build --releaseOptimize derleme yapartarget/release/

Debug ve release arasındaki fark yalnızca hız değildir. Cargo'nun profil belgesine göre dev profilinde opt-level = 0, debug-assertions = true ve overflow-checks = true varsayılandır; release profilinde ise opt-level = 3 ve taşma kontrolleri kapalıdır. Bu, tamsayı taşmasının debug derlemede programı durdurup release derlemede sessizce sarmasına yol açar; ayrıntıları veri tipleri yazısında gerçek çıktılarla gösteriyoruz. Cargo komutlarının bir avantajı da her işletim sisteminde aynı olmalarıdır: Git ile bir projeyi çektikten sonra klasöre girip cargo build demeniz çoğu zaman yeterlidir.

Editör ve yardımcı araçlar

Rust kod yazmak için belirli bir editör şart koşmaz. The Book, Rust ekibinin IDE desteğini rust-analyzer üzerinden geliştirdiğini belirtir; pek çok editör bu araçla otomatik tamamlama, tip gösterimi ve anlık hata işaretleme sunar. Standart kurulumla gelen cargo fmt kodunuzu topluluk stiline göre biçimlendirir, cargo fix derleyicinin açık düzeltme önerdiği uyarıları sizin yerinize uygular, cargo clippy ise ek lint kurallarıyla yaygın hataları yakalar. Bu araçların ayrıntılı kullanımı Clippy ve rustfmt yazısında anlatılıyor.

Sık yapılan kurulum hataları

  • Bağlayıcı eksikliği: Windows'ta Visual Studio adımını atlamak ya da Linux'ta C derleyicisi kurmamak, derlemenin son aşamasında linker hatasına yol açar.
  • Eski terminal penceresi: Kurulumdan önce açılmış pencereler güncel PATH değerini görmeyebilir; doğrulamayı yeni pencerede yapın.
  • Edition belirtmeden rustc: Düz rustc 2015 edition ile derler; 2024 özellikleri içeren kod derlenmez.
  • Debug derlemeyle performans ölçmek: Optimizasyonsuz debug derlemesi gerçek performansı yansıtmaz; ölçümleri --release ile yapın.
  • Cargo.lock'u elle düzenlemek: Bu dosyayı Cargo yönetir; bağımlılık sürümlerini Cargo.toml üzerinden değiştirin.
  • Yanlış çalıştırma komutu: Windows'ta ./main yerine .\main ya da doğrudan cargo run kullanın.

Sık Sorulan Sorular

rustup kullanmadan Rust kurabilir miyim?

Evet. The Book, rustup kullanmak istemeyenler için resmî sitedeki diğer kurulum yöntemleri sayfasına yönlendirir. Ancak sürüm güncelleme ve kanal değiştirme kolaylığı nedeniyle rustup önerilen yoldur.

Cargo ayrıca kurulmalı mı?

Resmî kurulumla Rust'ı kurduysanız Cargo da gelir. Başka bir yolla kurduysanız cargo --version ile kontrol edin; komut bulunamazsa kullandığınız kurulum yönteminin belgesine bakın.

İnternet olmadan çalışabilir miyim?

Belgeleri rustup doc ile çevrimdışı okuyabilirsiniz. Yalnızca standart kütüphaneyi kullanan projeler internet olmadan derlenir; harici bağımlılıklar ise bir kez indirildikten sonra Cargo'nun --offline bayrağıyla önbellekten kullanılabilir.

Derlediğim programı başka bir bilgisayara taşıyabilir miyim?

Rust önceden derlendiği için oluşan çalıştırılabilir dosyayı, Rust kurulu olmayan birine verdiğinizde de çalışır; dosyanın derlendiği işletim sistemi ve mimariyle uyumlu bir makinede çalıştırılması gerekir. Sunucuya dağıtım için Docker ile uygulama dağıtımı ve systemd servis yönetimi yazılarına bakabilirsiniz.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: Rust öğrenme rehberi · Rust nedir · Rust değişkenler · Cargo.toml ve bağımlılıklar · Clippy ve rustfmt · Rust 2024 edition · GitHub Actions CI/CD