Removendo programas baseados em Rust no Arch Linux
27/04/2026
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):
| Programa | Descrição | Alternativa(s) |
|---|---|---|
paru | AUR Helper | yay (Go), pakku (Nim) |
bat | Exibe um arquivo com realce de sintaxe | ccat (Go), cat do core |
lsd / eza | Lista arquivos com ícones/cores | colorls (Ruby), ls do core |
tokei | Conta linhas de código | scc (Go) |
ripgrep (rg) | Busca rápida de texto recursiva | grep do core, ack (Perl), ag (C) |
fd | Localizador de arquivos simplificado | find do core |
zoxide | cd mais inteligente (baseado em frecency) | cd, autojump (Python) |
bottom (btm) | Monitor de sistema/processos | htop (C), btop (C++) |
dust | Uso de disco visual | du, ncdu (C), gdu (Go) (TUI) |
xh | Cliente HTTP amigável | curl (C), httpie (Python) |
bandwhich | Utilização de rede | iftop (C), nethogs (C++) |
delta | Pager com realce de sintaxe | git diff padrão, diff-so-fancy (Perl) |
starship | Prompt de shell minimalista e rápido | Oh My Zsh (Shell) |
zellij | Multiplexador de terminal | tmux (C), screen (C) |
Embora o
findseja 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áginasmanou como visualizador prévio dogitporque lida com realce de sintaxe e paginação de uma só vez, enquanto ocatpadrão simplesmente despeja o texto no terminal; se você usanvim, talvez prefira usá-lo como manpager:MANPAGER=nvim +Man!.
O
bottom(btm) e obtopoferecem um “valor de relance” muito maior que ohtopgraças ao gráfico ao vivo integrado de picos de CPU e rede, que normalmente exigiria ferramentas separadas.
O
ezacostuma 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 dogreppadrão.
O
deltafoi 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 ogit diffpadrão não tem.
O
zellijinclui uma interface de descoberta “integrada” na parte inferior da tela, tornando-o muito mais acessível para iniciantes que otmux, que normalmente exige memorizar uma tecla “prefixo” (comoCtrl+b) e vários atalhos só para dividir uma janela.
O
xhcostuma ser preferido aohttpieporque é 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
dustoferece uma representação visual “em árvore” do espaço em disco. Ao contrário dodu -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.


