Para desarrollar en Rust, el punto de entrada recomendado por el equipo oficial es rustup, un instalador que además gestiona versiones del compilador. No se instala rustc directamente; rustup lo descarga y lo mantiene actualizado por ti.
Linux, macOS y sistemas Unix
Abre una terminal y ejecuta el comando oficial:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
El script descarga rustup-init y lo ejecuta. Verás un menú interactivo con tres opciones: instalación por defecto (recomendada), personalizada o cancelar. Para la mayoría de los casos basta con presionar 1 y Enter.
Al terminar, el script configura el directorio ~/.cargo/bin en tu PATH. Puede que necesites abrir una nueva terminal (o ejecutar source ~/.cargo/env) para que el cambio surta efecto.
Windows
En Windows, descarga el ejecutable directamente desde la página oficial:
Ejecuta el archivo y sigue las instrucciones en pantalla. Durante el proceso puede pedirte que instales las MSVC Build Tools de Visual Studio — son necesarias para compilar en Windows. Acepta e instálalas cuando se soliciten.
Las herramientas quedan en %USERPROFILE%\.cargo\bin.
Windows Subsystem for Linux (WSL)
Si usas WSL, el proceso es el mismo que en Linux: ejecuta el comando curl dentro de tu terminal WSL.
Verificar la instalación
Una vez instalado, abre una terminal nueva y ejecuta:
rustc --version cargo --version
Deberías ver algo como:
rustc 1.87.0 (9fcaa5...) cargo 1.87.0 (...)
Si rustc --version falla con “command not found”, el problema casi siempre es el PATH. En Linux/macOS ejecuta:
source ~/.cargo/env
O agrega esta línea a tu ~/.bashrc / ~/.zshrc:
export PATH="$HOME/.cargo/bin:$PATH"
Código de ejemplo
use std::process::Command;
fn main() {
println!("--- Verificando la instalación ---");
let version = Command::new("rustc")
.arg("--version")
.output();
match version {
Ok(o) if o.status.success() => {
let v = String::from_utf8_lossy(&o.stdout);
println!("rustc instalado: {}", v.trim());
}
_ => println!("Error: rustc no está en el PATH."),
}
let cargo_v = Command::new("cargo")
.arg("--version")
.output();
match cargo_v {
Ok(o) if o.status.success() => {
let v = String::from_utf8_lossy(&o.stdout);
println!("cargo instalado: {}", v.trim());
}
_ => println!("Error: cargo no está en el PATH."),
}
}
### Explicación del Código
– Command::new("rustc").arg("--version") ejecuta rustc --version como subproceso. .output() captura tanto stdout como el código de salida.
– La variable version recibe un Result<Output, Error>. El pattern Ok(o) if o.status.success() combina el unwrap del Result con la verificación de que el proceso terminó sin error.
– String::from_utf8_lossy(&o.stdout) convierte los bytes de stdout a texto; .trim() elimina el salto de línea final.
– El mismo patrón se repite para cargo, confirmando que ambas herramientas quedaron disponibles en el PATH.
Gestión del toolchain
Una vez instalado, rustup se usa también para mantener Rust actualizado y gestionar versiones:
rustup update # actualiza a la última versión estable rustup show # muestra la toolchain activa y las instaladas rustup toolchain install nightly # instala el canal nightly
Rust tiene tres canales de versiones: stable (producción), beta (próxima versión) y nightly (funciones experimentales). Para la mayoría de proyectos, stable es suficiente.
Para desinstalar Rust completamente:
rustup self uninstall
N° 4