Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bắt đầu

Trước khi viết dòng code Rust đầu tiên, cần có ba thứ trên máy: trình biên dịch Rust, Cargo — công cụ build kiêm quản lý dependency đi kèm, và cargo-binstall — tiện ích cài nhanh các công cụ dòng lệnh viết bằng Rust mà không phải build từ mã nguồn. Phần này hướng dẫn cài đặt cả ba trên macOS, dùng phiên bản Rust ổn định (stable) mới nhất.

Cài đặt Rust với rustup

rustup là công cụ chính thức để cài đặt và quản lý phiên bản Rust trên máy: tải toolchain, chuyển đổi giữa các kênh phát hành (stable/beta/nightly), thêm target để biên dịch chéo, và khoá phiên bản riêng cho từng dự án. Cài bằng script chính thức:

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

Script sẽ hỏi vài tuỳ chọn cài đặt, chọn 1) Proceed with installation (default) là đủ cho hầu hết trường hợp. Sau khi cài xong, mở lại terminal (hoặc chạy source "$HOME/.cargo/env") để rustccargo có trong PATH.

Kiểm tra đã cài đúng:

rustc --version

Lệnh trên in ra phiên bản stable hiện có trên máy, ví dụ rustc 1.82.0 (...). Khi có bản mới hơn, cập nhật bằng:

rustup update

Ngoài bản mặc định, có thể chủ động cài thêm toolchain khác — một phiên bản cụ thể, hoặc kênh beta/nightly — song song mà không ảnh hưởng tới bản đang dùng:

rustup toolchain install 1.90.0
rustup toolchain install beta
rustup toolchain install nightly

Toolchain vừa cài không tự động trở thành mặc định. Muốn chạy thử một lệnh với toolchain cụ thể mà không đổi mặc định, thêm tiền tố +<toolchain>:

cargo +1.90.0 build

Muốn đổi hẳn sang toolchain đó làm mặc định cho toàn máy:

rustup default 1.90.0

Xem toàn bộ toolchain đã cài trên máy — có thể có nhiều hơn một nếu từng cài thêm bản beta/nightly hoặc một phiên bản cụ thể để thử:

rustup toolchain list

Gỡ một toolchain không dùng tới nữa:

rustup toolchain uninstall nightly

Target biên dịch

Một target (target triple) mô tả nền tảng sẽ chạy binary sinh ra — kiến trúc CPU, hệ điều hành, và ABI, ví dụ aarch64-apple-darwin cho Mac Apple Silicon hay wasm32-unknown-unknown cho WebAssembly. Khi cài rustup, chỉ target khớp với máy đang dùng được cài sẵn — đủ để build và chạy ngay trên máy, nhưng chưa đủ nếu muốn biên dịch chéo (cross-compile) sang nền tảng khác.

Xem target đã cài và toàn bộ target khả dụng:

rustup target list --installed
rustup target list

Thêm một target mới:

rustup target add wasm32-unknown-unknown

Gỡ một target không cần nữa:

rustup target remove wasm32-unknown-unknown

Cấu hình phiên bản Rust cho từng dự án

Mặc định rustup dùng một toolchain chung cho toàn máy. Một dự án cụ thể có thể cần khoá cứng ở một phiên bản hoặc kênh khác — khai báo trong file rust-toolchain.toml ở thư mục gốc dự án:

[toolchain]
channel = "stable"

Mỗi khi chạy rustc/cargo trong thư mục có file này (hoặc thư mục con của nó), rustup tự nhận ra và dùng đúng phiên bản khai báo, tự tải về nếu máy chưa có — không cần đổi gì thủ công. Muốn khoá một bản cụ thể thay vì luôn theo stable mới nhất, thay giá trị channel bằng số hiệu, ví dụ channel = "1.82.0". File này nằm trong dự án nên commit vào git, để ai clone về cũng dùng đúng phiên bản.

Nếu chỉ cần đổi phiên bản tạm thời trên máy cá nhân, không muốn ghi vào file chia sẻ qua git, dùng override theo thư mục thay thế:

rustup override set 1.82.0

Gỡ override để quay lại dùng toolchain mặc định của máy:

rustup override unset

Xem toàn cảnh trạng thái hiện tại — toolchain nào đang active, active vì lý do gì (default hay override), và những target nào đã cài cho toolchain đó:

rustup show

Cargo

Cargo được cài kèm tự động cùng rustup, không cần cài riêng. Đây là build tool kiêm trình quản lý dependency của Rust: biên dịch, chạy, test, và tải các crate (thư viện) mà dự án phụ thuộc vào. Toàn bộ ví dụ trong sách chạy qua cargo thay vì gọi rustc trực tiếp.

Kiểm tra đã có Cargo:

cargo --version

cargo-binstall

cargo install cài một binary bằng cách biên dịch từ mã nguồn: tải crate, tải toàn bộ dependency, rồi compile — với những crate lớn có thể mất vài phút và cần đủ toolchain để build. cargo-binstall là một subcommand thay thế: tìm bản binary đã build sẵn của đúng crate đó đính kèm trong GitHub Releases, khớp với target của máy đang dùng, tải về, kiểm tra tính toàn vẹn rồi cài thẳng — bỏ qua hoàn toàn bước compile, thường chỉ mất vài giây thay vì vài phút.

Nếu crate không có sẵn bản build cho target đang dùng, cargo-binstall tự động rơi về biên dịch từ mã nguồn giống hệt cargo install. Nhờ vậy cargo binstall <tên-crate> dùng thay được cho cargo install <tên-crate> trong mọi trường hợp mà không mất khả năng cài đặt — chỉ được lợi thêm tốc độ khi có sẵn bản build. Sách này dùng cargo binstall bất cứ khi nào cần cài một công cụ dòng lệnh viết bằng Rust.

Cài bằng script chính thức — tải sẵn binary, không cần cài thêm công cụ nào khác ngoài curl (đã có sẵn trên macOS):

curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash

Kiểm tra (lưu ý dùng -V chứ không phải --version — cờ --version của cargo-binstall dùng để chỉ định phiên bản của package cần cài, không phải để in phiên bản của chính công cụ):

cargo binstall -V