Bahasa Rust berkembang dengan ritme tetap: versi stabil baru dirilis setiap enam minggu. Di saat yang sama, proyek lama yang kita kelola mungkin harus tetap dikompilasi dengan versi lama demi kestabilan, sementara proyek baru ingin memanfaatkan fitur terbaru. Keadaan tersebut menuntut cara mengelola banyak versi perkakas dalam satu komputer tanpa saling menimpa. rustup adalah jawaban resmi untuk kebutuhan itu, dan pada Chapter penutup section ini kita akan menguasai cara kerjanya: memilih toolchain, menambah komponen, dan menyiapkan target kompilasi silang.

Bagaimana rustup Bekerja #

Trik utama rustup terletak pada perintah rustc dan cargo yang kita panggil setiap hari. Perintah-perintah tersebut sebenarnya bukan program kompilator aslinya, melainkan proxy milik rustup yang berdiri di ~/.cargo/bin. Mari kita buktikan:

bash
which rustc
rustup which rustc

Output yang Dihasilkan:

text
/home/z/.cargo/bin/rustc
/home/z/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/bin/rustc

Perintah which menunjukkan bahwa rustc yang terpanggil dari PATH adalah berkas di ~/.cargo/bin — si proxy. Perintah rustup which rustc membuka kedoknya: berkas yang benar-benar dieksekusi berada di dalam folder toolchain aktif di ~/.rustup/toolchains. Setiap kali kita menjalankan cargo build, proxy membaca pengaturan rustup, menentukan toolchain yang berlaku saat itu, lalu meneruskan pekerjaan ke rustc sungguhan milik toolchain tersebut.

Mekanisme pemilihan toolchain dapat kita petakan sebagai berikut:

Prioritasnya sederhana: bila folder proyek memiliki pengaturan override, override tersebut menang; jika tidak, rustup memakai default global. Berkat lapisan proxy inilah mengganti versi Rust seluruhnya hanya mengubah satu pengaturan kecil, bukan memasang ulang apa pun.

Melihat Status Toolchain #

Dua perintah berikut adalah jendela status instalasi Rust kita:

bash
rustup toolchain list
rustup show

Output yang Dihasilkan oleh rustup toolchain list:

text
stable-x86_64-unknown-linux-gnu (active, default)

Nama toolchain mengikuti pola kanal-host: stable adalah kanal rilisnya, sedangkan x86_64-unknown-linux-gnu adalah triplet arsitektur dan sistem operasi komputer kita. Pengguna macOS dengan chip Apple akan melihat nama seperti stable-aarch64-apple-darwin. Tanda (active, default) menyatakan bahwa toolchain tersebut sedang dipakai sekaligus menjadi pilihan baku untuk semua proyek.

Perintah rustup show menampilkan informasi lebih rinci: toolchain terpasang, alasan toolchain aktif, target yang tersedia, hingga lokasi beranda rustup. Kita sudah melihat output lengkapnya pada Chapter Instalasi, dan pola membacanya tetap sama: bagian atas mendaftar toolchain, bagian bawah menjelaskan status toolchain yang sedang bekerja.

Memperbarui dan Menambah Toolchain #

Karena versi stabil terbit setiap enam minggu, menjaga Rust tetap mutakhir cukup dilakukan dengan satu perintah:

bash
rustup update

Perintah tersebut memeriksa kanal rilis, mengunduh versi terbaru bila ada, lalu memperbarui toolchain stabil kita di tempat — seluruh proyek otomatis memakai versi baru tanpa konfigurasi tambahan. rustup juga mengenali dua kanal lain selain stable: beta berisi kandidat rilis berikutnya, dan nightly berisi fitur eksperimental yang belum dijamin stabil.

Ketika suatu hari kita perlu mencicipi kedua kanal tersebut, pasang toolchain-nya secara berdampingan:

bash
rustup toolchain install nightly
rustup default nightly

Perintah pertama mengunduh toolchain nightly tanpa mengubah pilihan default, sedangkan perintah kedua menjadikan nightly sebagai toolchain utama seluruh sistem. Tidak ada yang hilang: toolchain stable lama tetap tersimpan di ~/.rustup dan dapat dipulihkan kapan saja dengan rustup default stable.

Untuk pemakaian sesaat tanpa mengubah default, rustup menyediakan notasi +toolchain yang ditulis langsung setelah nama perintah. Contohnya, cargo +nightly build mengompilasi proyek menggunakan toolchain nightly sekali jalan, dan rustc +beta --version menampilkan versi rustc milik kanal beta. Proyek tertentu juga dapat dikunci pada satu toolchain secara permanen lewat rustup override set stable yang dijalankan dari dalam folder proyek.

Mengelola Komponen #

Toolchain bukan satu program tunggal, melainkan kumpulan komponen yang dipasang terpisah. Kompilator rustc, build tool cargo, dan pustaka standar rust-std adalah komponen inti. Komponen lain bersifat opsional: rustfmt merapikan format kode, clippy memberi saran perbaikan kode, rust-docs menyimpan dokumentasi luring, dan rust-src menyediakan kode sumber pustaka standar untuk kebutuhan analisis.

Lihat daftar komponen yang sudah terpasang pada toolchain aktif:

bash
rustup component list --installed

Output yang Dihasilkan:

text
cargo-x86_64-unknown-linux-gnu
rust-std-x86_64-unknown-linux-gnu
rustc-x86_64-unknown-linux-gnu

Daftar tersebut memperlihatkan pemasangan dengan profil minimal: hanya komponen inti yang tersedia. Ketika kita mencoba menjalankan perintah milik komponen yang belum ada, rustup tidak membiarkan kita bingung — rustup langsung menyarankan perintah pemasangannya. Tambahkan komponen rustfmt untuk melihat prosesnya:

bash
rustup component add rustfmt

Output yang Dihasilkan:

text
info: downloading component rustfmt

Komponen terunduh, terpasang ke toolchain aktif, dan perintah barunya langsung siap dipakai:

bash
cargo fmt --version

Output yang Dihasilkan:

text
rustfmt 1.10.0-stable (b940084d7e 2026-09-28)

Komponen dapat dikelola mundur dengan rustup component remove <nama> bila tidak lagi dibutuhkan. Yang perlu diingat: komponen terpasang per toolchain, jadi toolchain nightly yang kita pasang di kemudian hari perlu dilengkapi komponennya sendiri.

Target Kompilasi Silang #

Setiap binary Rust terikat pada kombinasi arsitektur dan sistem operasi tertentu, yang disebut target. Binary x86_64-unknown-linux-gnu tidak dapat berjalan di macOS atau Windows. Kebutuhan menulis program di satu sistem untuk dijalankan di sistem lain — cross compilation — ditangani rustup lewat pengelolaan target.

Lihat target yang tersedia pada toolchain kita saat ini:

bash
rustup target list --installed

Output yang Dihasilkan:

text
x86_64-unknown-linux-gnu

Satu-satunya target terpasang adalah host tempat kita bekerja. Daftar lengkap ratusan target lainnya — dari x86_64-pc-windows-msvc hingga aarch64-apple-darwin dan berbagai varian embedded — dapat dilihat dengan rustup target list. Untuk menyiapkan kompilasi silang ke Windows 64-bit, cukup tambahkan targetnya:

bash
rustup target add x86_64-pc-windows-msvc

Perintah tersebut mengunduh pustaka standar Rust versi Windows tanpa memasang Windows itu sendiri. Setelah target terpasang, kompilasi silang dilakukan dengan memberitahu cargo target yang dimaksud, misalnya cargo build --target x86_64-pc-windows-gnu. Perlu dicatat bahwa sebagian target juga menuntut linker khusus milik sistem tujuan — topik yang akan kita dalami saat membahas deployment.

Ringkasan #

rustup menjaga seluruh perkakas Rust tetap tertata: proxy di ~/.cargo/bin meneruskan setiap pemanggilan rustc dan cargo ke toolchain aktif, rustup update menjaga versi stabil tetap mutakhir, komponen seperti rustfmt dan clippy dipasang per toolchain, dan target tambahan membuka jalan kompilasi silang. Dengan perangkat lengkap di tangan — bahasa, kompilator, cargo, dan rustup — kita siap melangkah ke section berikutnya dan menyelami dasar sintaks Rust sebagaimana mestinya: dengan menulis kode sungguhan.