Introdução e Conceitos Essenciais
Em ambientes de produção baseados em Ubuntu, prevenir atualizações imprevistas que possam quebrar serviços críticos é uma prioridade operacional. Para garantir essa estabilidade e evitar regressões de versão ou perda de dependências necessárias, o utilitário apt-mark surge como um recurso indispensável. Neste artigo, você verá como congelar versões de softwares no estado atual (hold) e ajustar os metadados de instalação entre modo manual e automático, assegurando um controle refinado sobre o ciclo de vida do sistema operacional.
Bloqueando Versões de Softwares: Operações com hold e showhold
Para exemplificar o processo na prática, instalamos inicialmente o utilitário curl após sincronizar os repositórios locais via sudo apt-get update -qq && sudo apt-get install -y curl.

Ao disparar sudo apt-mark hold curl, fixamos a versão atual do binário. Com isso, execuções posteriores de rotinas como apt upgrade irão ignorar deliberadamente este pacote, prevenindo alterações não planejadas.
⚙️ [Principais parâmetros disponíveis]
hold : Bloqueia o pacote especificado, impedindo upgrades automatizados pelo gerenciador.unhold : Remove a trava de versão, restabelecendo o fluxo normal de atualização.showhold : Exibe em tela todos os pacotes atualmente marcados como retidos.auto : Sinaliza que o componente foi incluído como dependência automática de outro software.manual : Define que o pacote teve instalação solicitada explicitamente pelo usuário.showauto : Lista as dependências instaladas de maneira automática no ambiente.showmanual : Filtra e apresenta pacotes configurados sob demanda manual direta.

A instrução apt-mark showhold serve como mecanismo de auditoria, listando tudo que está com atualização congelada no sistema.
Na saída do terminal, constatamos que o curl foi devidamente registrado no catálogo de retenção.

Desbloqueando Atualizações: Restaurando o Estado com unhold
Caso uma janela de manutenção permita atualizar a aplicação com segurança, utilizamos sudo apt-mark unhold curl para liberar a trava anterior.
O retorno Canceled hold on curl. confirma que a restrição foi suspensa com êxito.

Em seguida, reavaliamos o estado do sistema chamando novamente apt-mark showhold.
Como a resposta do comando retorna vazia, temos a certeza de que nenhuma regra de bloqueio residual permanece ativa para o pacote.

Alternando Atributos de Instalação: Gerenciamento com markauto e unmarkauto
Para demonstrar a manipulação de sinalizadores de dependência, incluímos a ferramenta jq no sistema executando sudo apt-get install -y jq.

O comando sudo apt-mark markauto jq altera o rótulo do software, fazendo com que o APT o considere uma dependência trazida automaticamente por terceiros, e não uma instalação direta do operador.
Essa marcação é fundamental para cenários de limpeza, pois permite que o apt autoremove remova o binário caso os pacotes principais vinculados sejam desinstalados.

Para checar se o atributo foi assimilado corretamente, consultamos o registro rodando apt-mark showauto jq.
A presença do termo jq na saída confirma que a biblioteca agora pertence à categoria de dependências automáticas.

Se a intenção for preservar o utilitário permanentemente, aplicamos sudo apt-mark unmarkauto jq, promovendo o pacote ao status de instalação manual.
Nessa condição, mesmo que todos os softwares correlatos sejam purgados, o apt autoremove preservará o jq intacto no disco.

Confirmamos a promoção com apt-mark showmanual jq.
O retorno positivo evidencia que o pacote voltou a figurar na listagem de softwares prioritários instalados pelo administrador.

Auditoria Global de Instalações: Inspecionando Listas no Sistema
Para uma visão geral dos programas gerenciados diretamente pelo usuário, combinamos a listagem com paginação através de apt-mark showmanual | head -n 10.
Os primeiros registros revelam ferramentas nucleares da distribuição ao lado de utilitários configurados pelo administrador, a exemplo do curl.

Por outro lado, o pipeline apt-mark showauto | head -n 10 filtra os pacotes trazidos como requisitos indiretos.
Assim, identificamos bibliotecas e componentes auxiliares que permanecem sob gestão automática do sistema de empacotamento.

Exploramos como o apt-mark viabiliza uma administração cirúrgica de versões e dependências no ecossistema Ubuntu.
Adote essas boas práticas para proteger ambientes contra falhas inesperadas e manter seu servidor sempre limpo e previsível.