Ubuntu apt

No Ubuntu, você raramente baixa instaladores de sites. Os programas vêm de uma "loja" oficial e gratuita, e o apt é o jeito de usá-la pelo terminal. Nesta aula você vai atualizar o sistema, encontrar, instalar e remover programas, e resolver os erros que aparecem no caminho.

Você vai aprender
  • O que são pacotes, repositórios e dependências.
  • A diferença entre apt update e apt upgrade (a dúvida mais comum).
  • Como descobrir o nome certo de um pacote antes de instalar.
  • A diferença entre remove, purge e autoremove.
  • O que fazer com "Não foi possível obter a trava" e "Não é possível encontrar o pacote".

Pacotes, repositórios e dependências

  • Pacote: um arquivo (.deb) com um programa pronto para instalar, mais informações como versão e descrição.
  • Repositório: um servidor da internet com milhares de pacotes. O Ubuntu já vem configurado com os oficiais (veja Repositórios e PPAs).
  • Dependência: outro pacote que o programa precisa para funcionar. O apt instala as dependências sozinho.

apt vem de Advanced Package Tool, "ferramenta avançada de pacotes". Ele mexe no sistema inteiro, por isso quase todos os comandos que mudam algo precisam de sudo. Os que só consultam não precisam.


update e upgrade: não é a mesma coisa

apt update: atualiza a lista

sudo
Precisa de administrador: vai gravar arquivos do sistema.
apt
O gerenciador de pacotes.
update
Baixa a lista atualizada do que existe nos repositórios. Não instala nem atualiza nenhum programa.
$ sudo apt update
[sudo: authenticate] Senha:
Atingido:1 http://br.archive.ubuntu.com/ubuntu resolute InRelease          « nada mudou neste
Obter:2 http://br.archive.ubuntu.com/ubuntu resolute-updates InRelease [126 kB]   « baixou novidades
Obter:3 http://security.ubuntu.com/ubuntu resolute-security InRelease [126 kB]
Obtidos 252 kB em 2s (126 kB/s)
2 pacotes podem ser atualizados. Execute 'apt list --upgradable' para vê-los.
LinhaSignificado
AtingidoEste repositório não mudou desde a última vez.
ObterHavia novidades e elas foram baixadas.
Ignorar / ErroProblema com um repositório (rede, endereço errado).
Última linhaQuantos pacotes instalados têm versão nova.

Ver o que vai ser atualizado

$ apt list --upgradable
firefox/resolute-updates 1:1snap1-0ubuntu8 amd64 [atualizável de: 1:1snap1-0ubuntu7]
mesa-vulkan-drivers/resolute-updates 26.0.8-1ubuntu0.3 amd64 [atualizável de: 26.0.8-1ubuntu0.2]

Cada linha mostra o pacote, de onde vem a versão nova, a versão nova e, entre colchetes, a versão que você tem. Esse comando só consulta, então não precisa de sudo.

A lista abriu numa tela separada?

No Ubuntu 26.04, o apt mostra resultados longos dentro de um paginador, como o less, com (END) no rodapé. Use as setas para rolar e q para sair.

apt upgrade: instala as atualizações

sudo apt
Gerenciador de pacotes, como administrador.
upgrade
Instala as versões novas dos pacotes que você já tem, usando a lista baixada pelo update.
$ sudo apt upgrade
Atualizando:
  firefox  mesa-vulkan-drivers

Resumo:
  Atualizando: 2, Instalando: 0, Removendo: 0, Não atualizando: 0
  Tamanho de download: 4.312 kB
  Espaço necessário: 120 kB / 321 GB disponível

Você quer continuar? [S/n] s                 « S maiúsculo = padrão; Enter já aceita
Obter:1 http://br.archive.ubuntu.com/ubuntu resolute-updates/main amd64 mesa-vulkan-drivers amd64 26.0.8-1ubuntu0.3 [4.240 kB]
…
Configurando mesa-vulkan-drivers:amd64 (26.0.8-1ubuntu0.3) ...

Os números e versões variam de máquina para máquina. A regra é: sempre update antes de upgrade. Sem o update, o upgrade trabalha com uma lista velha e acha que está tudo em dia.

As duas de uma vez

sudo apt update && sudo apt upgrade. O && roda o segundo só se o primeiro der certo. Mais sobre a rotina em Atualizações.

ComandoO que fazPrecisa de sudo?
apt updateAtualiza a lista do que existeSim
apt list --upgradableMostra o que tem versão novaNão
apt upgradeAtualiza os pacotes, sem remover nenhumSim
apt full-upgradeAtualiza e pode remover pacotes que atrapalham (ex.: troca de kernel)Sim

Achar o nome do pacote

O nome do pacote nem sempre é o nome do programa. Antes de instalar, descubra o nome certo. Há várias formas:

Forma 1: apt search

apt search
Procura no nome e na descrição dos pacotes.
"editor de imagem"
O que você procura. Em geral, as descrições estão em inglês: "image editor" acha mais.
$ apt search "image editor"
gimp/resolute 3.0.4-1 amd64
  GNU Image Manipulation Program

kolourpaint/resolute 4:25.04.0-0ubuntu1 amd64
  paint program by KDE
…

A lista costuma ser longa. Para procurar só no nome, use apt search --names-only htop.

Forma 2: apt show, para ver os detalhes

$ apt show tree
Package: tree
Version: 2.3.1-1
Priority: optional
Section: universe/utils
Installed-Size: 125 kB
Depends: libc6 (>= 2.38)
Download-Size: 53,5 kB
APT-Sources: http://archive.ubuntu.com/ubuntu resolute/universe amd64 Packages
Description: displays an indented directory tree, in color
…

Forma 3: o próprio terminal sugere

Digite o comando que você quer. Se ele não existir, o Ubuntu diz qual pacote o fornece:

$ htop
Comando 'htop' não encontrado, mas poder ser instalado com:
sudo snap install htop  # version 3.5.3, or
sudo apt  install htop  # version 3.4.1-5build2
Veja 'snap info htop' para versões adicionais.

Forma 4: a Central de Aplicativos

O app Central de Aplicativos busca pelo nome amigável e mostra telas e avaliações. Ele instala pacotes do apt e snaps.


Instalar

sudo apt
Gerenciador de pacotes, como administrador.
install
Instala.
tree
O nome do pacote (pode ser mais de um, separados por espaço).
$ sudo apt install tree
Instalando:
  tree

Resumo:
  Atualizando: 0, Instalando: 1, Removendo: 0, Não atualizando: 0
  Tamanho de download: 53,5 kB
  Espaço necessário: 125 kB / 321 GB disponível

Obter:1 http://br.archive.ubuntu.com/ubuntu resolute/universe amd64 tree amd64 2.3.1-1 [53,5 kB]
Obtidos 53,5 kB em 0s (412 kB/s)
Selecionando pacote previamente não selecionado tree.
Preparando para desempacotar .../tree_2.3.1-1_amd64.deb ...
Desempacotando tree (2.3.1-1) ...
Configurando tree (2.3.1-1) ...
Processando gatilhos para man-db (2.13.1-1) ...
$ which tree
/usr/bin/tree                                « instalado e pronto para usar

Repare que a saída mistura português e inglês: é assim mesmo no apt 3 do Ubuntu 26.04. As etapas são: baixar (Obter), desempacotar e configurar.

Formas diferentes de instalar

$ sudo apt install htop tree ncdu
$ sudo apt install -y htop
$ sudo apt install --no-install-recommends gimp
$ sudo apt install ./programa.deb
FormaPara quê
Vários nomesInstala tudo de uma vez.
-yResponde "sim" sozinho (bom para scripts; confira o que vai instalar antes).
--no-install-recommendsInstala só o essencial, sem os pacotes "recomendados".
./arquivo.debInstala um .deb baixado de um site, resolvendo as dependências. O ./ é obrigatório. Veja dpkg e .deb.

Se já estiver instalado

$ sudo apt install tree
tree já é a versão mais nova (2.3.1-1).

Remover: remove, purge e autoremove

ComandoRemove o programaRemove a configuração do sistemaRemove dependências que sobraram
apt removeSimNãoNão
apt purgeSimSim (arquivos em /etc)Não
apt autoremove——Sim
$ sudo apt remove tree
Removendo:
  tree

Resumo:
  Atualizando: 0, Instalando: 0, Removendo: 1, Não atualizando: 0
  Espaço liberado: 125 kB

Você quer continuar? [S/n]
Removendo tree (2.3.1-1) ...
Processando gatilhos para man-db (2.13.1-1) ...

Nenhum dos três apaga arquivos da sua pasta pessoal, como configurações em ~/.config. Isso é proposital: seus dados são seus.

Depois de remover programas, rode sudo apt autoremove de vez em quando. Ele apaga dependências que nenhum programa usa mais, incluindo kernels antigos.

Atenção: leia antes de confirmar

Remover um pacote pode levar junto outros que dependem dele. Antes de responder "s", leia a lista "Removendo:". Se aparecer algo como ubuntu-desktop ou gnome-shell, responda "n".


Outras tarefas úteis

ComandoPara quê
apt list --installedLista tudo o que está instalado.
apt list --installed | grep -i nomeConfere se algo está instalado.
apt policy nomeVersão instalada, versão disponível e de qual repositório vem.
sudo apt reinstall nomeReinstala um pacote com arquivos danificados.
sudo apt cleanApaga os .deb baixados que ficaram em cache.
sudo apt-mark hold nomeCongela um pacote: o upgrade não mexe nele (unhold desfaz).
$ apt policy tree
tree:
  Instalado: 2.3.1-1
  Candidato: 2.3.1-1
  Tabela de versão:
 *** 2.3.1-1 500
        500 http://br.archive.ubuntu.com/ubuntu resolute/universe amd64 Packages
        100 /var/lib/dpkg/status

Os comandos do apt não rodam no terminal simulado deste guia, porque mexeriam no sistema. Pratique numa máquina virtual (veja Instalação).


Quando não funciona

"você é root?"
$ apt install htop
Erro: Não foi possível abrir arquivo de trava /var/lib/dpkg/lock-frontend - open (13: Permissão negada)
Erro: Não é possível adquirir a trava da interface do dpkg (/var/lib/dpkg/lock-frontend), você é root?

O que aconteceu: faltou o sudo.

Como resolver: sudo !! repete o comando com sudo.

"Não foi possível obter a trava… Ela está sendo mantida pelo processo"
$ sudo apt install htop
Erro: Não foi possível obter a trava /var/lib/dpkg/lock-frontend. Ela está sendo mantida pelo processo 2147 (unattended-upgr)

O que aconteceu: outro programa já está instalando pacotes. Só um pode mexer de cada vez. Aqui é o unattended-upgrades, que instala atualizações de segurança sozinho, normalmente logo depois de ligar o computador. Também pode ser a Central de Aplicativos ou outro terminal.

Como resolver: espere alguns minutos e tente de novo. Para ver se ainda está rodando: ps aux | grep -i '[a]pt'.

Não apague as travas

Muitos tutoriais mandam apagar /var/lib/dpkg/lock*. Se outro processo estiver instalando, isso pode quebrar o sistema de pacotes. Só considere isso se tiver certeza de que nenhum processo do apt ou do dpkg está rodando, e depois rode sudo dpkg --configure -a.

"Não é possível encontrar o pacote"
$ sudo apt install vscode
Erro: Não é possível encontrar o pacote vscode

O que aconteceu: nenhum repositório configurado tem um pacote com esse nome. Ou o nome é outro, ou a lista está velha, ou o programa não está nos repositórios do Ubuntu.

Como resolver: rode sudo apt update; procure o nome com apt search. O VS Code, por exemplo, vem como snap (sudo snap install code --classic) ou como .deb do site oficial.

Dependências quebradas
$ sudo apt install programa
Erro: Dependências desencontradas. Tente 'apt --fix-broken install' sem nenhum pacote (ou especifique uma solução).

O que aconteceu: uma instalação anterior (geralmente de um .deb avulso) ficou pela metade.

Como resolver: rode exatamente o sugerido, sudo apt --fix-broken install, e leia o que ele propõe antes de confirmar.

Aviso "apt does not have a stable CLI interface"
$ apt list --installed | wc -l

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

2187

O que aconteceu: quando a saída vai para outro comando (com |), o apt avisa que o formato dele pode mudar entre versões.

Como resolver: é só um aviso. Em scripts, prefira apt-get e apt-cache, que têm saída estável.


Referência

ComandoDescrição
sudo apt updateAtualiza a lista de pacotes
sudo apt upgradeAtualiza os pacotes instalados
sudo apt full-upgradeAtualiza, podendo remover pacotes
apt search textoProcura pacotes
apt show pacoteDetalhes de um pacote
sudo apt install pacoteInstala (-y confirma sozinho)
sudo apt remove pacoteRemove o programa
sudo apt purge pacoteRemove programa e configuração do sistema
sudo apt autoremoveRemove dependências órfãs
apt list --installedLista os instalados
apt list --upgradableLista os atualizáveis
apt policy pacoteVersões e origem
sudo apt --fix-broken installConserta dependências quebradas

Exercícios

1. Atualizar tudo

Complete para atualizar a lista e depois os pacotes, só seguindo se o primeiro der certo:

sudo apt && sudo apt

2. Remover com a configuração

Complete para remover o nginx junto com os arquivos de configuração dele em /etc:

sudo apt nginx

3. Detalhes de um pacote

Complete para ver a descrição e o tamanho do pacote htop antes de instalar:

apt htop

4. O que o sudo apt update faz?

5. Apareceu "Ela está sendo mantida pelo processo 2147 (unattended-upgr)". O que fazer?


Resumo

  • update atualiza a lista; upgrade atualiza os programas. Sempre nessa ordem.
  • Descubra o nome do pacote com apt search, apt show ou a sugestão do próprio terminal.
  • remove tira o programa; purge tira também a configuração; autoremove limpa as sobras.
  • Consultas não precisam de sudo; mudanças precisam.
  • Trava ocupada: espere. Não apague os arquivos de trava.