zigup — O que é e Como Usar
Definição
zigup é um gerenciador de versões para o compilador Zig. Ele permite instalar, alternar e gerenciar múltiplas versões do Zig na mesma máquina. Similar ao rustup para Rust ou nvm para Node.js, o zigup simplifica o fluxo de trabalho quando você precisa trabalhar com diferentes versões do Zig em projetos distintos ou testar código em versões futuras.
Por que zigup Importa
- Múltiplas versões: Manter Zig estável e nightly lado a lado.
- Facilidade: Instalar e alternar versões com um único comando.
- Reprodutibilidade: Garantir que cada projeto use a versão correta.
- Atualizações: Acompanhar as versões mais recentes facilmente.
Instalação
Download Direto
# Linux/macOS — baixar o binário
curl -L https://github.com/marler/zigup/releases/latest/download/zigup-x86_64-linux.tar.xz | tar xJ
# Mover para o PATH
sudo mv zigup /usr/local/bin/
# macOS (Apple Silicon)
curl -L https://github.com/marler/zigup/releases/latest/download/zigup-aarch64-macos.tar.xz | tar xJ
Uso Básico
Instalar uma Versão
# Instalar versão estável mais recente
zigup fetch 0.13.0
# Instalar versão nightly (master)
zigup fetch master
# Definir versão padrão
zigup default 0.13.0
Alternar entre Versões
# Ver versões instaladas
zigup list
# Mudar a versão padrão
zigup default 0.13.0
# Verificar versão ativa
zig version
Remover Versões
# Remover versão específica
zigup clean 0.12.0
# Manter apenas a versão padrão
zigup clean --keep-default
Comandos Principais
| Comando | Descrição |
|---|---|
zigup fetch VERSAO | Baixar e instalar uma versão |
zigup default VERSAO | Definir a versão padrão |
zigup list | Listar versões instaladas |
zigup clean VERSAO | Remover uma versão |
zigup run VERSAO -- CMD | Executar comando com versão específica |
Exemplo Prático
# Fluxo típico de trabalho
# 1. Instalar a versão estável para trabalho diário
zigup fetch 0.13.0
zigup default 0.13.0
# 2. Testar com versão nightly para verificar compatibilidade
zigup fetch master
zigup run master -- zig build test
# 3. Verificar qual versão está ativa
zig version # 0.13.0
Armadilhas Comuns
- PATH: O zigup precisa estar no PATH e o diretório de instalação do Zig também.
- ZLS compatível: Ao trocar de versão do Zig, atualize o ZLS para a versão correspondente.
- Nightly muda diariamente: A versão
masteré atualizada com frequência. Código que funciona hoje pode quebrar amanhã. - Espaço em disco: Cada versão do Zig ocupa cerca de 150MB. Limpe versões não utilizadas com
zigup clean.
Termos Relacionados
- ZLS — Language Server que deve ser compatível com a versão do Zig
- Zig Software Foundation — Organização que mantém o Zig
- build.zig — Pode especificar versão mínima do Zig
- build.zig.zon — Campo
minimum_zig_version
Comparação com Outros Gerenciadores de Versão
O zigup é conceitualmente similar ao rustup (Rust), nvm (Node.js) e pyenv (Python). A principal diferença é que o Zig ainda não tem uma versão 1.0 estável, então alternar entre versões é especialmente comum — desenvolvedores que trabalham no ecossistema frequentemente precisam testar com master para verificar se o código continua compatível com as mudanças mais recentes.
Ao contrário do rustup, o zigup não gerencia toolchains adicionais (como cross-compilation targets) separadamente — o Zig já inclui suporte nativo a cross-compilation em qualquer versão.
Integrando zigup com Projetos
Para garantir que um projeto use a versão correta do Zig, você pode combinar o zigup com o campo minimum_zig_version no build.zig.zon:
// build.zig.zon
.{
.name = "meu-projeto",
.version = "0.1.0",
.minimum_zig_version = "0.13.0",
.dependencies = .{},
.paths = .{
"build.zig",
"build.zig.zon",
"src",
},
}
Quando outro desenvolvedor clonar o repositório e tentar compilar com uma versão mais antiga, o zig build informará que a versão mínima não é atendida.
Instalação no Windows
No Windows, o processo é ligeiramente diferente. O zigup distribui binários nativos para Windows que podem ser baixados manualmente e adicionados ao PATH do sistema:
# PowerShell — baixar e instalar no Windows
$url = "https://github.com/marler/zigup/releases/latest/download/zigup-x86_64-windows.zip"
Invoke-WebRequest -Uri $url -OutFile "zigup.zip"
Expand-Archive zigup.zip -DestinationPath "$env:LOCALAPPDATA\zigup"
# Adicionar $env:LOCALAPPDATA\zigup ao PATH do sistema
Boas Práticas
- Fixe a versão de produção: Em projetos sérios, evite usar
mastercomo versão de produção. Prefira uma versão estável específica como0.13.0. - CI/CD consistente: Em pipelines de CI, use
zigup fetch X.Y.Z && zigup default X.Y.Zpara garantir que o ambiente de build seja idêntico ao de desenvolvimento. - Limpeza periódica: Execute
zigup clean --keep-defaultregularmente para liberar espaço em disco, já que cada versão ocupa ~150MB. - ZLS compatível: Sempre que trocar de versão do Zig com zigup, atualize o ZLS para a versão correspondente. Um ZLS de versão diferente pode fornecer diagnósticos incorretos.