Tutorial

Removendo programas baseados em Rust no Arch Linux

Removendo programas baseados em Rust no Arch Linux

Por quê?

Geralmente não há nenhuma vantagem prática em remover software baseado em Rust, principalmente porque o Rust não é um runtime: ele compila o programa estaticamente em um único binário, talvez sendo apenas uma preocupação com o tamanho de armazenamento.

No entanto, alguns usuários podem querer auditar seu sistema por preferência pessoal, minimalismo, curiosidade ou razões ideológicas.

Problema

Em distribuições baseadas no Arch, o Rust costuma ser apenas uma makedepend, então não aparece no pacman -Q ou em consultas de pacotes semelhantes. Isso significa que não existe um único comando capaz de detectar de forma confiável quais pacotes instalados foram construídos com Rust, porque essa informação é removida dos metadados do pacote.

Uma possível forma

A maioria dos compiladores deixa algum tipo de marca d’água ou assinatura nos binários que produz, então talvez possamos usar isso.

O rustc geralmente deixa um rastro na seção .comment:

readelf -p .comment /usr/bin/tokei
String dump of section '.comment':
  [     0]  GCC: (GNU) 15.2.1 20251112
  [    1b]  rustc version 1.92.0 (ded5c06cf 2025-12-08) (Arch Linux rust 1:1.92.0-1)
  [    65]  Linker: LLD 21.1.6

[!IMPORTANT]
Este método é heurístico, não autoritativo. Ele detecta muitos binários construídos com Rust, mas não todos.

Como o Arch Linux geralmente coloca os binários em /usr/bin, podemos fazer:

find /usr/bin -maxdepth 1 -type f -executable -print0 |
xargs -0 -P"$(nproc)" -n50 readelf -p .comment 2>/dev/null |
awk '
/File:/ {file=$0}
/rustc/ {print file; print}
'

Ou, de um jeito mais lento, porém mais compatível:

readelf -p .comment /usr/bin/* 2>/dev/null | grep -E "(File:|rustc)" | grep -B 1 "rustc"

Isso imprimirá algo como:

File: /usr/bin/bat
  [    1c]  rustc version 1.93.0 (254b59607 2026-01-19) (Artix Linux rust 1:1.93.0-1)
File: /usr/bin/paru
  [    1b]  rustc version 1.92.0 (ded5c06cf 2025-12-08) (Arch Linux rust 1:1.92.0-1)
File: /usr/bin/resvg
  [    1c]  rustc version 1.93.1 (01f6ddf75 2026-02-11) (Artix Linux rust 1:1.93.1-1)
File: /usr/bin/bluetui
  [    14]  rustc version 1.94.0 (4a4ef493e 2026-03-02) (Arch Linux rust 1:1.94.0-3)

Depois você pode avaliar manualmente se realmente precisa desse software, ou consultar a lista de pacotes do Arch/Artix para confirmar se o pacote foi de fato construído com Rust ou se é um falso positivo.

Por exemplo, se você quiser substituir o bat (Rust), como não é um programa essencial, uma opção poderia ser o ccat (Go).

Alternativas comuns

Se quiser trocar, listo algumas alternativas comuns (veja as notas abaixo):

ProgramaDescriçãoAlternativa(s)
paruAUR Helperyay (Go), pakku (Nim)
batExibe um arquivo com realce de sintaxeccat (Go), cat do core
lsd / ezaLista arquivos com ícones/corescolorls (Ruby), ls do core
tokeiConta linhas de códigoscc (Go)
ripgrep (rg)Busca rápida de texto recursivagrep do core, ack (Perl), ag (C)
fdLocalizador de arquivos simplificadofind do core
zoxidecd mais inteligente (baseado em frecency)cd, autojump (Python)
bottom (btm)Monitor de sistema/processoshtop (C), btop (C++)
dustUso de disco visualdu, ncdu (C), gdu (Go) (TUI)
xhCliente HTTP amigávelcurl (C), httpie (Python)
bandwhichUtilização de redeiftop (C), nethogs (C++)
deltaPager com realce de sintaxegit diff padrão, diff-so-fancy (Perl)
starshipPrompt de shell minimalista e rápidoOh My Zsh (Shell)
zellijMultiplexador de terminaltmux (C), screen (C)

Embora o find seja mais poderoso para expressões lógicas complexas, o fd é significativamente mais rápido e usa regex por padrão, razão pela qual a maioria das pessoas o prefere para o uso diário.

O zoxide é geralmente considerado a ferramenta de “salto” mais rápida porque é escrito em Rust e se integra ao seu shell de forma mais eficiente que o antigo autojump baseado em Python.

O bat é frequentemente usado como pager de páginas man ou como visualizador prévio do git porque lida com realce de sintaxe e paginação de uma só vez, enquanto o cat padrão simplesmente despeja o texto no terminal; se você usa nvim, talvez prefira usá-lo como manpager: MANPAGER=nvim +Man!.

O bottom (btm) e o btop oferecem um “valor de relance” muito maior que o htop graças ao gráfico ao vivo integrado de picos de CPU e rede, que normalmente exigiria ferramentas separadas.

O eza costuma ser preferido em fluxos de trabalho modernos porque suporta “hyperlinks” (caminhos de arquivo clicáveis) e tem melhor suporte a símbolos de status do Git diretamente na listagem de arquivos.

O ripgrep (rg) é construído sobre o motor de regex do Rust, que usa autômatos finitos; ele evita backtracking, o que significa que não “trava” nem fica exponencialmente lento em padrões de busca complexos, ao contrário do grep padrão.

O delta foi projetado especificamente para facilitar as revisões de código no terminal; oferece diffs lado a lado e realce “dentro da linha” (mostrando exatamente quais caracteres mudaram), algo que o git diff padrão não tem.

O zellij inclui uma interface de descoberta “integrada” na parte inferior da tela, tornando-o muito mais acessível para iniciantes que o tmux, que normalmente exige memorizar uma tecla “prefixo” (como Ctrl+b) e vários atalhos só para dividir uma janela.

O xh costuma ser preferido ao httpie porque é um único binário nativo. Isso elimina o “atraso de inicialização” comum em ferramentas baseadas em Python, que é perceptível quando scripts fazem centenas de chamadas de API sequenciais.

O dust oferece uma representação visual “em árvore” do espaço em disco. Ao contrário do du -h, ele ordena automaticamente os maiores diretórios para o fim da tela, para que você não precise rolar de volta para cima para achar o que está consumindo seu armazenamento.

linux


Avatar

ItsZariep

YouTuber e programador, utiliza Linux desde 2015

Sobre mim


© 2026 ItsZariep

Powered by Tessera for Hugo