06. Instalação e gerenciamento de software no Ubuntu Server: guia completo

Gerenciar software é uma habilidade fundamental para qualquer administrador do Ubuntu Server. Quer você trabalhe em um ambiente de nuvem como Azure, AWS ou GCP, ou gerencie infraestrutura local, é essencial entender ferramentas de gerenciamento de pacotes como APT para manter um sistema seguro e otimizado.

Neste guia, abordaremos os conceitos básicos de instalação, atualização e gerenciamento de software, exploraremos cenários específicos da nuvem, solucionaremos problemas comuns e forneceremos exemplos práticos para ajudá-lo a dominar a administração do Ubuntu Server.


Artigo anterior:

01. Introdução ao Ubuntu Server – SysOSX: AI & Cloud

02. Como configurar seu primeiro servidor Ubuntu: guia para iniciantes – SysOSX: AI & Cloud

03. Dominando a linha de comando do Linux para Ubuntu Server – SysOSX: AI & Cloud

04. Gerenciamento de usuários e permissões no Ubuntu Server: um guia completo – SysOSX: AI & Cloud

05. Noções básicas de rede para Ubuntu Server: um guia completo – SysOSX: AI & Cloud



1. Entendendo o APT e o gerenciamento de pacotes no Ubuntu

O Ubuntu Server usa APT (Advanced Package Tool) como seu gerenciador de pacotes principal. O APT simplifica o gerenciamento de software lidando com dependências automaticamente e usando repositórios como fontes confiáveis de pacotes.

Principais componentes do APT:

  • apt: Ferramenta de linha de comando para gerenciar pacotes.
  • dpkg: Gerenciador de pacotes de baixo nível para .deb arquivos.
  • Repositórios: Fontes on-line onde os pacotes do Ubuntu são armazenados e recuperados.

2. Instalar software com o APT

Para instalar software no Ubuntu Server, use o comando apt install .

Exemplo: instalação do servidor Web Apache

  • Atualize a lista de pacotes:
sudo apt update 

Saída:

Hit:1 http://azure.archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://azure.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
Get:3 http://azure.archive.ubuntu.com/ubuntu noble-backports InRelease [126 kB]
Get:4 http://azure.archive.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Get:5 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages [922 kB]
Get:6 http://azure.archive.ubuntu.com/ubuntu noble-updates/main amd64 Components [151 kB]
Get:7 http://azure.archive.ubuntu.com/ubuntu noble-updates/universe amd64 Components [364 kB]
Get:8 http://azure.archive.ubuntu.com/ubuntu noble-updates/restricted amd64 Components [212 B]
Get:9 http://azure.archive.ubuntu.com/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:10 http://azure.archive.ubuntu.com/ubuntu noble-backports/main amd64 Components [7076 B]
Get:11 http://azure.archive.ubuntu.com/ubuntu noble-backports/universe amd64 Components [21.3 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu noble-backports/restricted amd64 Components [212 B]
Get:13 http://azure.archive.ubuntu.com/ubuntu noble-backports/multiverse amd64 Components [212 B]
Get:14 http://azure.archive.ubuntu.com/ubuntu noble-security/main amd64 Components [9024 B]
Get:15 http://azure.archive.ubuntu.com/ubuntu noble-security/universe amd64 Components [51.9 kB]
Get:16 http://azure.archive.ubuntu.com/ubuntu noble-security/restricted amd64 Components [208 B]
Get:17 http://azure.archive.ubuntu.com/ubuntu noble-security/multiverse amd64 Components [208 B]
Fetched 1907 kB in 1s (2778 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
15 packages can be upgraded. Run 'apt list --upgradable' to see them.
  • Instale o Apache:
sudo apt install apache2

3. Remover software

Se não precisar mais de um pacote, você poderá removê-lo com os comandos apt remove ou apt purge .

Exemplo: remoção do Apache

sudo apt remove apache2

Saída:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  apache2
...
After this operation, 2 MB disk space will be freed.
Do you want to continue? [Y/n]

Para removê-lo completamente, incluindo arquivos de configuração:

sudo apt purge apache2


4. Atualização e upgrade de pacotes

Atualizações regulares são essenciais para a segurança e a estabilidade do sistema.

Comandos:

  • Atualizar a lista de pacotes
sudo apt update 
  • Atualizar pacotes instalados
sudo apt upgrade
  • Upgrade completo (incluindo atualizações do kernel)
sudo apt full-upgrade

Saída:

The following packages will be upgraded:
  linux-image-5.4.0-91-generic linux-headers-5.4.0-91-generic ...
Do you want to continue? [Y/n]

5. Gerenciamento de repositórios

Os repositórios são essenciais para o gerenciamento de pacotes. Por padrão, o Ubuntu usa repositórios oficiais, mas repositórios adicionais podem ser adicionados, modificados ou removidos conforme necessário.

Gerenciamento de repositórios no formato Deb822

Versões recentes do Ubuntu migraram para o formato Deb822 para o gerenciamento de repositórios. Em vez de usar o arquivo tradicional /etc/apt/sources.list , os repositórios agora são gerenciados por meio de arquivos .sources localizados no /etc/apt/sources.list.d/ diretório.

Exibir repositórios atuais

Para ver seus repositórios atuais, consulte os arquivos .sources em /etc/apt/sources.list.d/:

ls /etc/apt/sources.list.d/

Por exemplo:

cat /etc/apt/sources.list.d/ubuntu.sources

Um .sources arquivo no formato Deb822 tem este aspecto:

Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Adicionar um repositório

Para adicionar um novo repositório no formato Deb822, crie um arquivo .sources em /etc/apt/sources.list.d/. Por exemplo, para adicionar um repositório PPA personalizado:

sudo nano /etc/apt/sources.list.d/custom.sources

Adicione o conteúdo personalizado desejado:

Types: deb
URIs: http://customizedurl/
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/repository-name.gpg

Salve o arquivo e atualize a lista de pacotes:

sudo apt update

Remover um repositório

Para remover um repositório, exclua o arquivo .sources correspondente de /etc/apt/sources.list.d/:

sudo rm /etc/apt/sources.list.d/custom.sources
sudo apt update

Benefícios do formato Deb822

  • Configuração estruturada: Separa claramente tipos de repositório, URIs, suítes e componentes.
  • Segurança aprimorada: Permite especificar chaves GPG para assinatura de repositórios usando o campo Signed-By .
  • Melhor compatibilidade: Facilita o gerenciamento de vários repositórios em ambientes de nuvem e conteinerizados.

Para mais detalhes, consulte a página do manual sources.list(5).


6. Gerenciamento do cache de pacotes

O APT usa um sistema de cache para armazenar localmente arquivos de pacotes baixados e metadados. Esse cache ajuda a acelerar operações como instalação e atualizações de software, mas pode crescer com o tempo e consumir espaço em disco. Entender como gerenciar o cache é essencial para manter o desempenho do sistema e liberar recursos.

Verificação do tamanho do cache

Para verificar quanto espaço o cache está usando:

sudo du -sh /var/cache/apt/

Exemplo de saída:

126M    /var/cache/apt/

Limpeza do cache

  1. Limpar o cache de pacotes
    Use o comando apt clean para remover todos os arquivos de pacotes em cache:sudo apt clean Isso limpa o /var/cache/apt/archives diretório, que armazena .deb arquivos.
  2. Remover downloads parciais
    Se um download foi interrompido ou corrompido, remova os arquivos parciais com:sudo apt autoclean Isso remove apenas arquivos desatualizados e downloads parciais.

Exemplo de saída da limpeza de cache

sudo apt clean
sudo apt autoclean

Saída:

Cleaning up /var/cache/apt/archives...
Removing unused files...
Done.

Reconstrução do cache

Se suspeitar que os metadados do cache estão corrompidos, reconstrua-o atualizando a lista de pacotes:

sudo apt update 

Isso atualiza o cache local com os metadados mais recentes dos repositórios.


7. Cenários de nuvem: gerenciamento de software em Azure, AWS e GCP

Em ambientes de nuvem, o gerenciamento de software no Ubuntu Server funciona de forma semelhante às configurações locais. No entanto, há considerações adicionais:

Azure

  • O Azure fornece Extensões de Script Personalizado para automatizar a instalação de software durante a implantação de VMs.
  • Exemplo: uso de um script para instalar o Nginx:
az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name CustomScript \
  --publisher Microsoft.Azure.Extensions \
  --settings '{"commandToExecute":"sudo apt update && sudo apt install -y nginx"}'

AWS

  • Use scripts de dados de usuário para instalar software durante a inicialização da instância.
  • Exemplo: instalação do Docker em uma instância EC2:
#!/bin/bash
sudo apt update
sudo apt install -y docker.io

GCP

  • Use scripts de inicialização para gerenciar a instalação de software em instâncias de VM.
  • Exemplo: instalação do MySQL:
#!/bin/bash
sudo apt update
sudo apt install -y mysql-server

8. Solução de problemas comuns durante a instalação ou desinstalação

1. Pacote não encontrado

Se um pacote não for encontrado, verifique se o repositório está habilitado:

sudo apt update 
sudo apt update

2. Erros de dependência

Corrija as dependências ausentes:

sudo apt --fix-broken install

3. Problemas com repositórios

Verifique se há erros de repositório:

sudo apt update 

Exemplo de saída:

Err:1 http://ppa.launchpad.net/repository-name/ubuntu noble Release
  404 Not Found

Solução: remova ou corrija a entrada do repositório em /etc/apt/sources.list.

4. A desinstalação deixa arquivos residuais

Limpe os arquivos restantes:

sudo apt autoremove
sudo apt purge package-name

5. Permissão negada

Certifique-se de ter privilégios de root:

sudo apt install package-name


9. Práticas recomendadas para o gerenciamento de pacotes

  • Sempre atualize antes de instalar software
sudo apt update 
  • Atualize seu sistema regularmente
    Use apt upgrade ou apt full-upgrade  para manter seu sistema seguro.
  • Remova pacotes desnecessários
sudo apt autoremove
  • Use repositórios confiáveis
    Evite repositórios de terceiros, a menos que sejam necessários.
  • Monitore alterações de pacotes em ambientes de nuvem
    Automatize atualizações usando scripts ou ferramentas de gerenciamento de configuração como o Ansible.
  • Limpe o cache periodicamente
    Limpe o cache regularmente para liberar espaço em disco:
sudo apt clean

Conclusão

Quer você gerencie um servidor local ou trabalhe na nuvem, dominar a instalação e o gerenciamento de software no Ubuntu Server é fundamental para manter um sistema seguro e eficiente. Seguindo as práticas recomendadas descritas neste guia, você pode garantir que seu servidor permaneça otimizado e pronto para qualquer carga de trabalho.

Para mais informações, consulte a documentação oficial do Ubuntu sobre APT.

E agora?

No próximo artigo, vamos nos aprofundar em aplicação de patches e atualização do Ubuntu Server, uma tarefa crítica para manter a segurança e a estabilidade. Você aprenderá:

  • Por que a aplicação de patches é fundamental para a segurança e a estabilidade e como isso evita vulnerabilidades.
  • Como usar apt para atualizar e melhorar seu servidor com eficácia.
  • As diferenças entre apt update, apt upgrade, e apt full-upgrade para evitar erros comuns.
  • Automatização de atualizações com unattended-upgrades para economizar tempo e garantir consistência.
  • Como lidar com as atualizações do kernel e reiniciar o servidor sem problemas usando as notificações de reboot-required .

Fique atento a informações práticas sobre como manter seu Ubuntu Server seguro e atualizado!

4 thoughts on “06. Installing and Managing Software on Ubuntu Server: A Complete Guide”

Deixe um comentário