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-appimagedepende da ferramentaappimagetoolpara 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.