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.
- O que são pacotes, repositórios e dependências.
- A diferença entre
apt updateeapt upgrade(a dúvida mais comum). - Como descobrir o nome certo de um pacote antes de instalar.
- A diferença entre
remove,purgeeautoremove. - 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
aptinstala 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.
| Linha | Significado |
|---|---|
Atingido | Este repositório não mudou desde a última vez. |
Obter | Havia novidades e elas foram baixadas. |
Ignorar / Erro | Problema com um repositório (rede, endereço errado). |
| Última linha | Quantos 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.
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.
sudo apt update && sudo apt upgrade. O && roda o segundo só se o primeiro der certo. Mais sobre a rotina em Atualizações.
| Comando | O que faz | Precisa de sudo? |
|---|---|---|
apt update | Atualiza a lista do que existe | Sim |
apt list --upgradable | Mostra o que tem versão nova | Não |
apt upgrade | Atualiza os pacotes, sem remover nenhum | Sim |
apt full-upgrade | Atualiza 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
| Forma | Para quê |
|---|---|
| Vários nomes | Instala tudo de uma vez. |
-y | Responde "sim" sozinho (bom para scripts; confira o que vai instalar antes). |
--no-install-recommends | Instala só o essencial, sem os pacotes "recomendados". |
./arquivo.deb | Instala 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
| Comando | Remove o programa | Remove a configuração do sistema | Remove dependências que sobraram |
|---|---|---|---|
apt remove | Sim | Não | Não |
apt purge | Sim | Sim (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.
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
| Comando | Para quê |
|---|---|
apt list --installed | Lista tudo o que está instalado. |
apt list --installed | grep -i nome | Confere se algo está instalado. |
apt policy nome | Versão instalada, versão disponível e de qual repositório vem. |
sudo apt reinstall nome | Reinstala um pacote com arquivos danificados. |
sudo apt clean | Apaga os .deb baixados que ficaram em cache. |
sudo apt-mark hold nome | Congela 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
$ 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.
$ 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'.
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.
$ 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.
$ 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.
$ 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
| Comando | Descrição |
|---|---|
sudo apt update | Atualiza a lista de pacotes |
sudo apt upgrade | Atualiza os pacotes instalados |
sudo apt full-upgrade | Atualiza, podendo remover pacotes |
apt search texto | Procura pacotes |
apt show pacote | Detalhes de um pacote |
sudo apt install pacote | Instala (-y confirma sozinho) |
sudo apt remove pacote | Remove o programa |
sudo apt purge pacote | Remove programa e configuração do sistema |
sudo apt autoremove | Remove dependências órfãs |
apt list --installed | Lista os instalados |
apt list --upgradable | Lista os atualizáveis |
apt policy pacote | Versões e origem |
sudo apt --fix-broken install | Conserta dependências quebradas |
Exercícios
1. Atualizar tudo
Complete para atualizar a lista e depois os pacotes, só seguindo se o primeiro der certo:
2. Remover com a configuração
Complete para remover o nginx junto com os arquivos de configuração dele em /etc:
3. Detalhes de um pacote
Complete para ver a descrição e o tamanho do pacote htop antes de instalar:
4. O que o sudo apt update faz?
5. Apareceu "Ela está sendo mantida pelo processo 2147 (unattended-upgr)". O que fazer?
Resumo
updateatualiza a lista;upgradeatualiza os programas. Sempre nessa ordem.- Descubra o nome do pacote com
apt search,apt showou a sugestão do próprio terminal. removetira o programa;purgetira também a configuração;autoremovelimpa as sobras.- Consultas não precisam de sudo; mudanças precisam.
- Trava ocupada: espere. Não apague os arquivos de trava.