Instalar Rust y Cargo en Linux con rustup y comprobar las herramientas

Para programar en Rust necesitamos su compilador y, en la mayoría de los proyectos, Cargo para organizar la compilación y las dependencias. Podemos instalarlos con rustup, la herramienta que permite gestionar las versiones de Rust para nuestra cuenta.

Conviene distinguir esos nombres antes de empezar. rustc compila el código. cargo trabaja con el proyecto. rustup instala y selecciona el conjunto de herramientas que utilizaremos.

Vamos a preparar la instalación y comprobar qué versión está activa. La creación de programas y las pruebas con Cargo están desarrolladas en la guía de compilación de Rust en Linux, para no mezclar aquí todo el recorrido.

Logotipo del lenguaje de programación Rust

Comprobar si ya tenemos Rust

Antes de instalar otra copia, abrimos una terminal y consultamos:

rustc --version
cargo --version
command -v rustc
command -v cargo

Si ya existe rustup, podemos ver el conjunto activo:

rustup show active-toolchain

Una instalación con paquetes de la distribución y otra con rustup pueden convivir, pero debemos saber cuál encuentra la shell. Si los comandos apuntan a lugares distintos, revisamos esa situación antes de añadir otra instalación.

Que un comando no exista tampoco nos obliga a cambiar rutas globales a ciegas. Primero necesitamos saber qué método utilizaremos y dónde guarda sus herramientas.

Preparar las dependencias en Ubuntu o Linux Mint

En estos sistemas podemos instalar las herramientas básicas de descarga y compilación con:

sudo apt update
sudo apt install curl build-essential

Aunque escribamos Rust, el proceso de enlazado puede necesitar las herramientas de C del sistema. Algunas dependencias de un proyecto también incorporan código nativo.

Esto no significa que debamos instalar cualquier biblioteca que aparezca mencionada en un error. Si falta una dependencia concreta, leemos qué requiere el proyecto y utilizamos el paquete que corresponda a nuestra distribución.

La guía oficial de instalación de Rust explica esas necesidades y otras opciones de instalación. En Fedora u otro sistema elegiríamos sus paquetes equivalentes.

Descargar el instalador oficial

Para usar rustup entramos en las instrucciones oficiales. El instalador descarga las herramientas, por lo que necesita conexión a Internet.

Podemos separar la descarga de la ejecución para revisar el archivo primero. Dentro de una carpeta de trabajo nueva:

curl --proto '=https' --tlsv1.2 -sSf \
  https://sh.rustup.rs -o rustup-instalar.sh
less rustup-instalar.sh
sh rustup-instalar.sh

El archivo de destino no debe existir si contiene algo que queramos conservar. La procedencia sigue importando aunque revisemos el contenido: no sustituimos la dirección oficial por una copia de un foro.

Ejecutamos el instalador como nuestra cuenta, sin anteponer sudo. Revisamos las opciones que presenta y los cambios que propone en los archivos de inicio de la shell. Para empezar, el canal estable suele ser el adecuado, salvo que un proyecto requiera otra cosa.

No necesitamos elegir nightly simplemente porque su nombre parezca más reciente. Es un canal con otro propósito y no todas sus características están disponibles en stable.

Abrir una sesión donde se encuentren los comandos

Al terminar, seguimos la indicación del instalador y abrimos una terminal nueva. En una instalación habitual con Bash también puede utilizarse:

source "$HOME/.cargo/env"
rustc --version
cargo --version
rustup --version

Usamos esa ruta sólo si corresponde a la instalación que acabamos de preparar. No cambiamos el valor de HOME ni copiamos instrucciones de otra cuenta.

La documentación de rustup explica dónde se sitúan sus ejecutables. Que la instalación termine no demuestra que la terminal anterior haya actualizado la búsqueda de comandos.

Ayuda de rustup mostrada desde una terminal de Linux

Ayuda de rustup en una versión anterior. La versión instalada se consulta con rustup --version.

Si obtenemos command not found, comprobamos command -v y las instrucciones de nuestra shell. No arreglaría el problema copiando ejecutables dentro de /usr/bin o añadiendo enlaces sin saber qué instalación estamos utilizando.

Saber qué versión está usando un proyecto

Rustup puede seleccionar un conjunto distinto según el proyecto o una opción explícita. Por eso dos carpetas pueden mostrar versiones diferentes aunque utilicemos la misma cuenta.

Las reglas de selección de rustup incluyen archivos de configuración del proyecto y selecciones por directorio. Cuando un repositorio contiene rust-toolchain.toml, lo leemos antes de actualizar o cambiar su versión.

Para consultar la situación desde esa carpeta:

rustup show active-toolchain
rustc --version
cargo --version

No modificaría el archivo del proyecto para que coincida con la versión que ya tengo instalada. Puede formar parte de lo que el equipo utiliza para construir y probar el programa.

Tampoco hace falta fijar una versión personal en todos los directorios. Para un primer ejemplo, basta con conocer el canal que hemos instalado y comprobar los comandos.

Actualizar con el método que elegimos

Si instalamos mediante rustup, podemos actualizar el canal estable con:

rustup update stable

Es una operación que descarga e instala herramientas, no una consulta. Antes de hacerla en un proyecto importante, revisamos sus requisitos y conservamos un punto de partida con el que podamos comparar las pruebas.

Si utilizamos exclusivamente paquetes de la distribución, su actualización corresponde al gestor de paquetes. No mezclaría ambos métodos esperando que uno actualice automáticamente lo que instaló el otro.

Actualizar no garantiza que una aplicación mantenga exactamente el mismo comportamiento o que todas sus dependencias sean compatibles. Después comprobamos la compilación y los tests del proyecto, no sólo el número de versión.

Si falla el enlazador o no encuentra una herramienta

Cuando aparece un error de linker, revisamos si están disponibles GCC o Clang y las bibliotecas que exige el proyecto. El compilador de Rust puede estar instalado correctamente y fallar una fase posterior.

Si el problema sólo ocurre en un repositorio, miramos su versión requerida y configuración. Si ocurre incluso en un programa pequeño sin dependencias, empezamos por comprobar la instalación básica.

También conviene distinguir un fallo de descarga de una herramienta que falta. No desactivamos la verificación de certificados para hacer que un instalador continúe. Una conexión incorrecta no se soluciona convirtiendo la descarga en una operación menos segura.

Con las versiones y rutas claras, ya podemos crear nuestro primer programa. La guía de rustc y Cargo sigue ese paso con un archivo sencillo, un proyecto y pruebas, sin volver a instalar todas las herramientas.

Sergio Almela

Senior Software Engineer con más de diez años de experiencia. Escribo sobre Linux, software libre, backend, arquitectura, rendimiento, testing e IA aplicada al desarrollo.

Ver todas las entradas de Sergio Almela →