---
title: "zigup em Zig — O que é e Como Usar"
url: "https://ziglang.com.br/glossario/zigup-em-zig-o-que-%C3%A9-e-como-usar/"
markdown_url: "https://ziglang.com.br/glossario/zigup-em-zig-o-que-%C3%A9-e-como-usar.MD"
description: "Entenda o zigup: gerenciador de versões do compilador Zig. Instalar, alternar e manter múltiplas versões do Zig. Guia pt-BR."
date: "2026-02-21"
author: "Zig Brasil"
---

# zigup em Zig — O que é e Como Usar

Entenda o zigup: gerenciador de versões do compilador Zig. Instalar, alternar e manter múltiplas versões do Zig. Guia pt-BR.


# 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

1. **Múltiplas versões**: Manter Zig estável e nightly lado a lado.
2. **Facilidade**: Instalar e alternar versões com um único comando.
3. **Reprodutibilidade**: Garantir que cada projeto use a versão correta.
4. **Atualizações**: Acompanhar as versões mais recentes facilmente.

## Instalação

### Download Direto

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# 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

```bash
# 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](/glossario/zls/) — Language Server que deve ser compatível com a versão do Zig
- [Zig Software Foundation](/glossario/zig-software-foundation/) — Organização que mantém o Zig
- [build.zig](/glossario/build-zig/) — Pode especificar versão mínima do Zig
- [build.zig.zon](/glossario/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`:

```zig
// 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
# 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 `master` como versão de produção. Prefira uma versão estável específica como `0.13.0`.
- **CI/CD consistente**: Em pipelines de CI, use `zigup fetch X.Y.Z && zigup default X.Y.Z` para garantir que o ambiente de build seja idêntico ao de desenvolvimento.
- **Limpeza periódica**: Execute `zigup clean --keep-default` regularmente 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.

## Tutoriais Relacionados

- [Configurando o Ambiente Zig](/tutoriais/configurando-ambiente-zig/)
- [Introdução ao Zig](/tutoriais/introducao-ao-zig/)
- [Zig para Iniciantes](/tutoriais/zig-para-iniciantes/)
