En este momento estás viendo Instalar Rust en Debian 11 Bullseye

Instalar Rust en Debian 11 Bullseye

Instalar Rust en Debian 11 Bullseye

En este artículo vamos a ver que es el lenguaje de programación Rust y como instalarlo en Debian 11. Se trata de un lenguaje de programación compilado, de propósito general y multiparadigma que está siendo desarrollado por Fundación Rust. El pasado 9 de febrero se publicó la ultima versión estable Rust 1.67.1.

Sumario

  • Que es Rust
  • Requisitos previos
  • Instalación de Rust
  • Leer la documentación principal
  • Ejemplos

Que es Rust

Rust es un lenguaje de programación de código abierto, desarrollado y patrocinado por Mozilla y Samsung, que busca la opinión y contribución de la comunidad. Está desarrollado bajo licencia Apache 2.0 o MIT. Es uno de los más utilizados para trabajar con criptomonedas y crear nodos para minar criptoactivos. Desde el año 2.020 es el tercer lenguaje de programación más usado para el kernel de Linux, después de C y Assembler.

Logo de Rust
Logo de Rust

Está centrado en la velocidad, la seguridad y el paralelismo. Por ello es ampliamente utilizado por los desarrolladores, para crear todo tipo de software como motores de juegos, sistemas operativos, sistemas de ficheros, componentes para un navegador y motores de simulación para realidad virtual.

Entre el software que lo utiliza encontramos Firefox, el comando exa, OpenDNS, el navegador Tor, Dropbox, Stratis, un sistema de ficheros para Fedora y RHEL, y los S.O. Linux como BlogOS, intermezzOS, QuiltOS, Redox, RustOS, Rux, Tefflin y Tock y otros como macOS, Windows, FreeBSD, OpenBSD, Redox, Android e iOS.

Los usuarios de Rust se refieren a sí mismos como rustáceos y usan a Ferris como su mascota.

Ferris, la mascota de Rust
Ferris, la mascota de Rust

Sintácticamente es muy similar a C ++, pero frente a este garantiza un acceso seguro a la memoria mediante el uso de un verificador que valida sus referencias. Utiliza bloques de código delimitados por llaves y estructuras de control de flujo tales como if, else, do, while, for y otras como la palabra clave match para ramificación multidireccional.

Tienes toda la información que necesites en español en su página oficial.

Requisitos previos

Para instalar Rust en Debian 11 Bullseye y todos sus derivados, necesitaremos instalar las dependencias requeridas. Como siempre que hacemos una instalación, antes de comenzar, actualizamos nuestro sistema.

sudo apt update && sudo apt upgrade
Actualizando el sistema
Actualizando el sistema

Y seguidamente las dependencias requeridas por Rust.

sudo apt install curl build-essential gcc make -y
Instalación de las dependencias
Instalación de las dependencias

Instalación de Rust

Con todos los paquetes requeridos instalados, ejecutamos la herramienta «curl» para descargar el script de instalación de la última versión estable de Rust.

curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh
Descargando el script de instalación
Descargando el script

Como vemos en la siguiente captura, debes pulsar «1» para realizar una instalación estándar.

Selección del tipo de instalación
Selección del tipo de instalación

La instalación tardará según el hardware del que dispongas, pero es rápida. Al final de la instalación te indica que se ha instalado correctamente y la versión instalada.

Instalación terminada
Instalación terminada

También nos indica que tenemos que habilitar su entorno en la shell actual.

$ Para comenzar, es posible que deba reiniciar su shell actual.
$ Esto recargaría su variable de entorno PATH para incluir el directorio de contenedores de carga ($HOME/.cargo/bin).

$ Para configurar su shell actual, ejecute:

$ source "$HOME/.cargo/env"
Habilitamos el entorno en shell actual
Habilitamos el entorno en shell actual

No obstante, en cualquier momento puedes verificar la versión con

rustc --version

La última versión estable es la 1.67.1, la que hemos instalado.

Si no obtienes salida del comando anterior puedes asegurarte de su instalación verificando el PATH.

echo $PATH
Verificamos versión instalada y el PATH
Verificamos versión instalada y el PATH

Y para actualizar el software periódicamente ejecuta el siguiente comando.

rustup update stable
Actualización de Rust
Actualización de Rust

La desinstalación es muy sencilla, si lo quieres eliminar de tu sistema ejecuta

rustup self uninstall

Leer la documentación principal

Encontrarás toda la documentación en español sobre Rust en su pagina oficial.

Página oficial de información
Página oficial de información

Y para aprender Rust tienes muchos manuales.

Manuales de Rust
Manuales de Rust

Además, toda esta documentación también está disponible localmente usando el comando «rustup doc», que abrirá estos recursos en tu navegador sin necesidad de una conexión de red.

Documentación fuera de linea
Documentación fuera de linea

Ejemplos

Aquí te muestro unos ejemplos para ver su sintaxis.

El clásico programa que muestra la frase «¡Hola mundo!». Creamos el directorio y nos desplazamos a él.

mkdir ~/projects
cd ~/projects
mkdir hello_world
cd hello_world
nano main.rs

Copia y pega el siguiente código en tu fichero llamado «main.rs»

fn main() {
    println!("¡Hola mundo!");
} 

Guarda el fichero y desde el directorio «~/projects/hello_world», ejecuta los siguientes comandos para compilar y ejecutar el fichero

rustc main.rs
./main

Ejemplo de salida

Ejecución del programa
Ejecución del programa

Otro ejemplo, obtenido de la documentación del proyecto. Una demostración de como generar un número aleatorio.

use std::io;
use rand::Rng;

fn main() {
    println!("Guess the number!");

    let secret_number = rand::thread_rng().gen_range(1..=100);

    println!("The secret number is: {secret_number}");

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin()
        .read_line(&mut guess)
        .expect("Failed to read line");

    println!("You guessed: {guess}");
}

Una simple demostración de las capacidades de concurrencia ligera de Rust obtenida de la wikipedia.

/* Esta función crea diez "tareas" que se pueden ejecutar concurrentemente.
   Ejecútalo múltiples veces y observa la salida irregular que se obtiene al
   estar cada tarea llamando al stdout, ya que cada tarea puede producirse entre
   las sucesivas llamadas a `println` y dentro de la función `println` en sí. */

fn main() {
    // Esta cadena es inmutable, para que pueda ser accedida de forma segura
    // por múltiples tareas.
    let message = "¡Miradme, soy un proceso ligero!";
    // Los bucles `for` funcionan con cualquier tipo que implemente el trait
    // `Iterator`.
    for num in range(0, 10) {
        do spawn {
            println(message);
            // `println!` es una macro que verifica estáticamente un string de
            // formato. Las macros son estructurales (como en Scheme) en lugar
            // de ser textuales (como en C).
            println!("Este mensaje ha sido ofrecido por la tarea {:i}.", num);
        }
    }
}

Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.

Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.

Y para suscribirte y recibir las novedades publicadas, tienes un enlace en pie de la página o desde aquí mismo.

Deja una respuesta

This site uses Akismet to reduce spam. Learn how your comment data is processed.