Rust no Ubuntu 26.04 LTS

Em alguns cenários de desenvolvimento, não faz sentido depender exclusivamente dos pacotes disponibilizados pela distribuição Linux — principalmente quando se deseja acompanhar a evolução da linguagem, utilizar recursos mais recentes ou manter um ambiente consistente entre diferentes máquinas.

Esse é o caso do Rust, uma linguagem moderna focada em desempenho, segurança de memória e concorrência, que vem sendo adotada em projetos de infraestrutura, sistemas embarcados, aplicações desktop, WebAssembly e até componentes do próprio Linux.

Importante: embora o Ubuntu disponibilize pacotes do Rust nos seus repositórios, a recomendação oficial da comunidade é utilizar o Rustup, que permite gerenciar versões, toolchains e targets de forma muito mais simples.

Para isso, utilizaremos o Rustup, ferramenta oficial responsável pela instalação e gerenciamento do ecossistema Rust.


Sobre o Rust

O Rust é uma linguagem de programação compilada, criada originalmente pela Mozilla, com foco em:

  • Segurança de memória sem Garbage Collector
  • Alto desempenho
  • Concorrência segura
  • Portabilidade
  • Ferramentas modernas de desenvolvimento

Atualmente é amplamente utilizado em sistemas operacionais, bancos de dados, aplicações desktop, serviços em nuvem, ferramentas de linha de comando e desenvolvimento WebAssembly.

Por que utilizar o Rustup?

Embora seja possível instalar o Rust pelos repositórios do Ubuntu, o Rustup oferece diversas vantagens:

  • Instalação simplificada
  • Atualização rápida para versões mais recentes
  • Gerenciamento de múltiplas versões
  • Instalação de componentes adicionais
  • Suporte facilitado a cross-compilation

Na prática, é a abordagem utilizada pela maioria dos desenvolvedores Rust.


1) Instalação das dependências

sudo apt update

sudo apt install -y \
  build-essential \
  clang \
  lld \
  pkg-config \
  libssl-dev \
  curl \
  gdb \
  lldb

2) Instalação do Rustup

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

rustc --version
cargo --version

3) Componentes recomendados

rustup component add \
  rust-analyzer \
  rustfmt \
  clippy

4) Instalação do Visual Studio Code

sudo snap install code --classic

Extensões recomendadas:

  • Rust Analyzer
  • CodeLLDB
  • Dependi
  • Even Better TOML

5) Criando o primeiro projeto

cargo new hello-rust
cd hello-rust

cargo run

6) Gerando um binário para Ubuntu

cargo build --release

./target/release/hello-rust

file target/release/hello-rust

7) Otimizando o binário

No Cargo.toml:

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true
panic = "abort"

Compile novamente:

cargo build --release

8) Gerando binários portáveis (MUSL)

rustup target add x86_64-unknown-linux-musl

sudo apt install -y musl-tools

cargo build --release \
  --target x86_64-unknown-linux-musl

Verificação:

ldd target/x86_64-unknown-linux-musl/release/hello-rust

Resultado esperado:

not a dynamic executable

ou

statically linked

9) Compilando para WebAssembly (WASM)

rustup target add wasm32-unknown-unknown

cargo build --release \
  --target wasm32-unknown-unknown

Arquivo gerado:

target/wasm32-unknown-unknown/release/<nome-do-projeto>.wasm

Exemplo:

target/wasm32-unknown-unknown/release/hello-rust.wasm

10) Compilando para Windows e macOS

Uma das vantagens do Rust é o suporte a múltiplas plataformas, permitindo gerar binários para diferentes sistemas operacionais a partir de um mesmo ambiente de desenvolvimento.

Windows (x86_64)

rustup target add x86_64-pc-windows-gnu

sudo apt install -y gcc-mingw-w64-x86-64

cargo build --release \
  --target x86_64-pc-windows-gnu

Resultado:

target/x86_64-pc-windows-gnu/release/hello-rust.exe

macOS

rustup target add x86_64-apple-darwin
rustup target add aarch64-apple-darwin

O Rust disponibiliza os targets para macOS, porém a geração de binários normalmente exige acesso ao SDK da Apple e ferramentas específicas de desenvolvimento.

Na prática, para distribuição oficial, recomenda-se realizar o build final e a assinatura diretamente em uma máquina macOS.


11) Ferramentas úteis

cargo fmt
cargo clippy
cargo test

rustup update
rustup show

12) Empacotando aplicações

Debian (.deb)

cargo install cargo-deb
cargo deb

AppImage

cargo install cargo-appimage
cargo appimage

O cargo-appimage depende da ferramenta appimagetool para gerar o arquivo AppImage final. Dependendo da distribuição Linux utilizada, ela pode precisar ser instalada separadamente.

Ícone do AppImage

Estrutura esperada:

hello-rust/
├── Cargo.toml
├── icon.png
└── src/

Tamanhos recomendados:

256x256
512x512

Exemplo de SVG simples:

cat > icon.svg <<'SVG'
<svg xmlns="http://www.w3.org/2000/svg"
     width="256"
     height="256"
     viewBox="0 0 256 256">
    <rect width="256"
          height="256"
          rx="48"
          fill="#2b741e"/>

    <text x="128"
          y="145"
          text-anchor="middle"
          font-size="88"
          font-family="Arial"
          fill="white"
          font-weight="bold">
        R
    </text>
</svg>
SVG

Converter:

sudo apt install -y librsvg2-bin

rsvg-convert -w 256 -h 256 icon.svg -o icon.png

Targets mais utilizados

Plataforma Target
Linux x86_64-unknown-linux-gnu
Linux estático x86_64-unknown-linux-musl
Windows x86_64-pc-windows-gnu
macOS Intel x86_64-apple-darwin
macOS Apple Silicon aarch64-apple-darwin
WebAssembly wasm32-unknown-unknown

Considerações finais

O Rust vem se consolidando como uma das principais linguagens para desenvolvimento de software de alto desempenho e alta confiabilidade.

Utilizando o Rustup no Ubuntu 26.04 LTS é possível manter um ambiente moderno, consistente e alinhado com as recomendações da própria comunidade.

Entre os principais benefícios estão:

  • Instalação simples e atualizações rápidas
  • Geração de binários nativos para Linux
  • Suporte oficial a WebAssembly
  • Ferramentas modernas de desenvolvimento
  • Excelente integração com Visual Studio Code
  • Possibilidade de gerar executáveis portáveis para distribuição
  • Facilidade para geração de binários multiplataforma

Além disso, o ecossistema vem amadurecendo rapidamente, oferecendo suporte para aplicações backend, desktop, embarcadas, WebAssembly e ferramentas de infraestrutura.

Para quem desenvolve aplicações backend, ferramentas de linha de comando, aplicações desktop ou componentes de infraestrutura, Rust se tornou uma alternativa extremamente sólida e madura.


Referências


Publicado

em

por

Tags: