Linux / Comando apk: gerenciar pacotes e atualizações no Alpine Linux
O comando apk, Alpine Package Keeper, gerencia pacotes no Alpine Linux. add adiciona pacotes ao estado desejado, del remove essas exigências, update atualiza o índice dos repositórios e upgrade aplica atualizações; em instalações diskless e contêineres, a permanência das mudanças depende também do método de operação.
O arquivo /etc/apk/world descreve os pacotes e as restrições que o sistema deve satisfazer. Ele não é uma lista de todos os arquivos instalados: dependências necessárias também podem ser instaladas para atender às exigências desse estado. Um índice de repositório, por sua vez, descreve os pacotes disponíveis para a seleção.
Sintaxe e preparação
apk [opções globais] comando [pacotes...]
Essa linha descreve a estrutura, não um comando literal. Confira apk --version e apk --help; para uma operação específica, use, por exemplo, apk add --help. Consulte man apk se as páginas de manual estiverem disponíveis. Existem diferenças entre versões do apk-tools, inclusive nas opções e na apresentação da saída.
As alterações exigem acesso administrativo, fontes compatíveis com a versão do Alpine e espaço para os pacotes. Os exemplos com sudo pressupõem que esse comando já esteja instalado e autorizado. Ele pode não existir em uma instalação mínima do Alpine. Se o sistema usa doas configurado, substitua o prefixo por doas; em uma sessão já autenticada como root, execute o mesmo comando apk sem sudo. Não instale uma ferramenta de elevação apenas para copiar a forma do exemplo.
Confira as fontes em /etc/apk/repositories e as orientações da versão instalada. Não misture repositórios de versões estáveis diferentes ou da ramificação de desenvolvimento edge sem um plano compatível. Se uma atualização falhar, investigue a fonte, a conectividade e a confiança das assinaturas; não desative a validação para contornar o erro.
Pesquisar, instalar e atualizar
Pesquisar o nome do pacote
apk search nginx
A pesquisa usa os índices disponíveis e pode retornar vários nomes relacionados ao termo. Leia o nome completo e a versão; o resultado não prova que o pacote está instalado. Para restringir ao nome exato, confira apk search -e nginx. Use o nome do pacote, sem copiar a versão apresentada na busca para o comando de instalação.
Adicionar o pacote e suas dependências
Antes da operação real, examine a simulação com sudo apk --simulate add nginx. Ela permite avaliar as mudanças sem instalar pacotes; se o índice estiver desatualizado, atualize-o primeiro. O comando de instalação é:
sudo apk add nginx
add registra a exigência em world e procura uma seleção compatível, incluindo as dependências necessárias. Isso também pode alterar outros pacotes. Confira nomes, versões, origem e a lista completa da simulação. Não dependa de uma pergunta de confirmação: o apk pode executar de forma não interativa, conforme a versão e a configuração. Após a instalação, apk info -e nginx verifica o registro instalado; o funcionamento e a configuração de um serviço precisam de confirmação separada.
Atualizar os índices e depois os pacotes
sudo apk update
sudo apk upgrade
Execute a primeira linha, leia o resultado e prossiga somente depois de tratar os erros. update renova os índices, enquanto upgrade calcula e aplica as atualizações permitidas pelos repositórios e pelas restrições do sistema. Para revisar a proposta antes da segunda operação, use sudo apk --simulate upgrade.
As duas linhas acima são comandos independentes: colá-las juntas não faz a segunda depender automaticamente do sucesso da primeira. Em um shell compatível, sudo apk update && sudo apk upgrade executa a segunda apenas se a primeira retornar sucesso. Isso não substitui a leitura das mensagens nem garante confirmação interativa. Atualizar dentro dos repositórios da versão atual também não equivale a migrar para outra versão do Alpine.
Verificar o estado instalado
apk info -e verifica se o nome indicado corresponde a um pacote instalado:
apk info -e busybox
Se busybox estiver instalado, a saída ilustrativa é:
busybox
O exemplo mostra um nome, não uma versão nem um resultado observado em qualquer instalação. Na operação info -e, o manual descreve a impressão dos nomes instalados e um estado de saída igual ao número de nomes solicitados que não estão instalados. Para esse único alvo, sucesso indica que foi encontrado; examine mensagens de erro antes de interpretar um resultado diferente.
Em um shell compatível, printf '%s\n' "$?" mostra o estado do comando anterior, desde que seja executado imediatamente depois da consulta. Confirmar o registro instalado não testa a integridade de todos os arquivos, o funcionamento do programa nem a persistência após recriar um contêiner.
- Identifique a versão do Alpine, as fontes e o modo de instalação: disco convencional, diskless ou contêiner.
- Pesquise o nome exato e atualize os índices, lendo as mensagens antes de continuar.
- Simule a alteração, revise os pacotes afetados e execute a operação real com o acesso administrativo já configurado.
- Confira o estado instalado e o funcionamento esperado; aplique o procedimento de persistência adequado ao ambiente.
Operações e opção de cache
| Forma | Finalidade |
|---|---|
search / info |
Pesquisa candidatos ou consulta informações; info -e verifica o estado instalado. |
add / del |
Adiciona ou remove exigências de world e aplica as mudanças decorrentes. |
update |
Atualiza os índices dos repositórios, sem atualizar por si só os pacotes instalados. |
upgrade |
Aplica atualizações disponíveis que possam atender às restrições e dependências do sistema. |
--no-cache |
Impede o uso dos caminhos de cache local pela operação; não significa funcionamento sem rede nem persistência automática. |
Remoção e permanência das mudanças
apk del nginx, executado com o acesso administrativo apropriado, remove a exigência de world e pode remover pacotes que deixem de ser necessários. Um pacote ainda exigido por outro pode permanecer instalado. Examine a simulação com apk --simulate del nginx e as dependências antes de aplicar a mudança; não retire entradas importantes de world para forçar uma solução.
--no-cache controla o uso do cache, não a manutenção do estado desejado nem a validade de assinaturas. No apk-tools 3, o manual expressa essa opção como a forma negativa de --cache. Em diskless, o cache local pode ser necessário para reinstalar os pacotes na inicialização; não adote essa opção indiscriminadamente nesse ambiente.
Em uma instalação convencional em disco, os pacotes são gravados no sistema de arquivos persistente. No modo diskless, o sistema roda em memória: é preciso configurar o armazenamento da sobreposição de configuração, preservar as mudanças com lbu commit e garantir a disponibilidade dos pacotes na inicialização, por exemplo em um cache local. A documentação do modo diskless do Alpine detalha esse fluxo. O commit não deve ser tratado como cópia integral de todos os dados da máquina.
Em contêineres descartáveis, uma mudança feita na instância em execução não passa automaticamente a fazer parte da imagem que cria novas instâncias. Registre os pacotes na definição de construção ou na configuração de gerenciamento usada e reconstrua a imagem conforme esse fluxo. Recriar o contêiner e apenas reiniciar a mesma instância são ações diferentes; confira também onde os dados da aplicação são preservados.
Pergunta frequente
Qual é a diferença entre apk add e apk update?
add registra os pacotes desejados e aplica as mudanças necessárias. update renova os índices dos repositórios. Para atualizar os pacotes já instalados, use o fluxo com upgrade, revisando antes as mudanças e a forma de preservá-las no ambiente.
Documentação oficial
Consulte o guia Alpine Package Keeper e o manual do usuário do Alpine sobre apk. O manual de apk-tools reproduzido pelo Arch Linux descreve as opções da versão publicada ali, e a página de apk info explica -e. Compare essas referências com a ajuda da versão instalada.




