Voltar aos artigos
Ubuntu

apt, snap e .deb: o que usar e quando no Ubuntu

5 min de leitura por Equipe TRIAT
Notebook exibindo código em um editor de texto
Foto: Arnold Francisca · Unsplash

No Ubuntu existem várias formas de instalar programas, e a dúvida é natural: qual usar quando? A escolha errada não impede o software de funcionar, mas cria dor de cabeça mais adiante — atualização que não chega, espaço em disco consumido sem explicação, dependência que quebra. Vamos organizar.

apt — o padrão para servidor

Para a maioria dos softwares de servidor, o apt é o caminho. Ele instala a partir dos repositórios oficiais, resolve dependências automaticamente e integra com o ciclo de atualizações de segurança do Ubuntu.

sudo apt update                    # atualiza a lista de pacotes
sudo apt install nginx             # instala
sudo apt upgrade                   # atualiza o que está instalado
apt search termo                   # procura pacote
apt show nginx                     # detalhes, dependências, tamanho
apt list --installed | grep php    # o que está instalado
O apt update não atualiza programa nenhum — ele só busca a lista do que existe nos repositórios. Quem atualiza é o apt upgrade. É a confusão mais comum de quem está começando, e vale fixar.

Entendendo o que o Ubuntu te dá

Os repositórios são divididos, e a diferença tem consequência prática em servidor:

RepositórioO que éSuporte de segurança
mainSoftware livre mantido pela CanonicalSim, durante todo o ciclo LTS
restrictedDrivers proprietáriosSim
universeSoftware livre mantido pela comunidadeSem garantia formal
multiverseSoftware com restrição de licençaNão

Isso significa que um pacote instalado do universe pode não receber correção de segurança com a mesma prioridade. Para componentes críticos de um servidor, saber de onde vem o pacote é parte da avaliação de risco.

apt policy nginx    # de qual repositório veio e qual versão está disponível

snap — aplicações isoladas

Snaps empacotam o programa junto com todas as suas dependências, isolados do resto do sistema. Isso resolve um problema real: rodar uma versão recente de um software em uma distribuição LTS mais conservadora, sem quebrar nada.

As contrapartidas em servidor são concretas:

  • ocupam bem mais espaço, porque cada snap carrega suas próprias bibliotecas;
  • iniciam mais devagar, o que é irrelevante para um serviço que sobe uma vez e perceptível para um comando de linha usado o tempo todo;
  • atualizam sozinhos, sem pedir permissão — ótimo em desktop, questionável em produção;
  • cada versão instalada permanece no disco como um ponto de retorno, o que ajuda a explicar o crescimento de /var/lib/snapd.
snap list                          # o que está instalado
snap list --all                     # inclusive versões antigas retidas
sudo snap set system refresh.retain=2   # guardar só 2 versões
snap refresh --time                # quando será a próxima atualização
sudo snap refresh --hold=24h       # adiar atualizações por um dia
A atualização automática de snaps já causou surpresa em produção: o serviço reinicia sozinho, em horário não combinado, com uma versão nova. Se você usa snap em servidor, defina uma janela de atualização com refresh.timer e trate isso como parte da política de manutenção.

.deb — pacote avulso do fornecedor

Útil quando o fabricante distribui o software diretamente, o que é comum em agentes de backup, monitoramento e antivírus:

sudo apt install ./agente.deb

Instale com apt e não com dpkg -i. A diferença é que o apt resolve as dependências faltantes; o dpkg apenas reclama que faltam e deixa o pacote pela metade.

Quando o fornecedor oferece um repositório em vez de um arquivo avulso, prefira o repositório. Assim o pacote passa a receber atualizações junto com o resto do sistema, em vez de congelar na versão que você baixou.

PPA: use com parcimônia

PPAs são repositórios de terceiros. Resolvem o caso de precisar de uma versão mais nova que a do Ubuntu, mas trazem riscos que precisam ser conscientes: você passa a confiar em quem mantém aquele PPA, e ele pode substituir pacotes do sistema por versões próprias.

sudo add-apt-repository ppa:nome/ppa
sudo apt update
apt policy pacote          # confira de onde veio antes de instalar

Em servidor de produção, a regra prática é: PPA só de fornecedor conhecido, só quando não há alternativa, e sempre anotado na documentação do servidor — porque em uma atualização de versão do Ubuntu ele será o primeiro a causar conflito.

Qual escolher, na prática

SituaçãoUse
Serviço de servidor comumapt, sem pensar duas vezes
Agente de backup, monitoramento ou antivírusRepositório do fornecedor, ou .deb via apt
Precisa de versão mais nova que a do UbuntuRepositório oficial do projeto; PPA como segunda opção
Ferramenta que muda muito rápidosnap, se o isolamento compensar
Aplicação isolada com dependências conflitantesContainer, melhor que qualquer das opções acima
Em servidores, dê preferência ao apt: é mais leve, previsível e alinhado com o ciclo de segurança do Ubuntu. Quanto mais o servidor se parecer com a instalação padrão, mais fácil é atualizá-lo, replicá-lo e transferi-lo para outra pessoa da equipe.

Mantenha limpo

Higiene simples que evita dor de cabeça futura:

sudo apt autoremove          # remove pacotes órfãos
sudo apt clean               # limpa o cache de downloads
sudo apt --purge autoremove  # remove também os arquivos de configuração

# o que ficou de kernel antigo ocupando /boot
dpkg -l 'linux-image-*' | grep ^ii

/boot cheio de kernel antigo é uma causa clássica de falha em atualização — e o autoremove resolve na maioria dos casos.

Antes de qualquer atualização grande

Duas precauções que valem sempre: rode primeiro em um servidor de homologação, e confira o que será alterado antes de confirmar.

sudo apt update
apt list --upgradable          # o que mudaria
sudo apt upgrade               # não remove nada
sudo apt full-upgrade          # pode remover pacotes para resolver conflito

A diferença entre os dois últimos importa: o full-upgrade tem permissão para remover pacotes instalados quando isso é necessário para resolver dependências. Em produção, leia com atenção a lista de remoções antes de confirmar.

Precisa disso rodando na sua empresa?

A TRIAT implanta e monitora Linux, storage, virtualização, redes e segurança — do projeto ao suporte 24/7.

Falar com um especialista