# MANUAL TÉCNICO - GERENCIAMENTO DE PACOTES E ATUALIZAÇÕES **Código:** ITGINF 0010/26 | **Classificação:** RESTRITO **Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}} ## 1. HISTÓRICO DE REVISÃO | Data | Versão | Descrição | Autor | | :--- | :--- | :--- | :--- | | {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves | ## 2. OBJETIVO Orientar a instalação, remoção, atualização de softwares e resolução de problemas de repositórios em servidores Linux (Debian/Ubuntu e RHEL/CentOS). ## 3. PRÉ-REQUISITOS * [ ] Acesso root ou usuário com permissão `sudo`. * [ ] Conexão com a internet liberada no Firewall (Portas 80/443). --- ## 4. COMANDOS POR FAMÍLIA DE DISTRIBUIÇÃO > ⚠️ **IDENTIFIQUE O SISTEMA:** > Use `cat /etc/os-release` para saber se está no **Debian/Ubuntu** ou **RHEL/CentOS**. ### Família Debian (Ubuntu 24.04, Debian 11/12) Gerenciador: **APT** (`apt`) e **DPKG**. | Ação | Comando | | :--- | :--- | | **Atualizar lista** | `sudo apt update` | | **Aplicar updates** | `sudo apt upgrade -y` | | **Instalar App** | `sudo apt install [pacote]` | | **Remover App** | `sudo apt remove [pacote]` | | **Remover + Configs** | `sudo apt purge [pacote]` | | **Buscar Pacote** | `apt search [termo]` | ### Família RHEL (AlmaLinux, Rocky, CentOS) Gerenciador: **DNF** (`dnf`) ou YUM (Legado). | Ação | Comando | | :--- | :--- | | **Atualizar tudo** | `sudo dnf update -y` | | **Instalar App** | `sudo dnf install [pacote]` | | **Remover App** | `sudo dnf remove [pacote]` | | **Buscar Pacote** | `dnf search [termo]` | | **Info do Pacote** | `dnf info [pacote]` | ### Família Alpine (Alpine Linux) Gerenciador: **APK** (`apk`). Extremamente rápido. | Ação | Comando | | :--- | :--- | | **Atualizar lista** | `sudo apk update` | | **Atualizar tudo** | `sudo apk upgrade` | | **Instalar App** | `sudo apk add [pacote]` | | **Instalar sem Cache** | `sudo apk add --no-cache [pacote]` (Comum em Docker) | | **Remover App** | `sudo apk del [pacote]` | | **Buscar Pacote** | `apk search [termo]` | --- ## 5. SOLUÇÃO DE PROBLEMAS (TROUBLESHOOTING) ### Problema 1: Erro "Server Not Found" ou Lentidão (Troca de Mirrors) Muitas vezes o repositório padrão é lento ou está fora do ar. **No Debian/Ubuntu:** 1. Instale o `netselect-apt` para achar o mirror mais rápido (opcional, ou edite manualmente). 2. Edite a lista de fontes: ```bash sudo nano /etc/apt/sources.list ``` *(No Ubuntu atual, pode ser `/etc/apt/sources.list.d/ubuntu.sources`)*. 3. Substitua URLs lentas (ex: `br.archive.ubuntu.com`) por outras oficiais (ex: `mirror.unesp.br`). **No Alpine Linux:** 1. Edite `/etc/apk/repositories`. 2. Descomente ou adicione o mirror desejado (ex: `http://dl-cdn.alpinelinux.org/alpine/v3.18/main`). 3. Rode `apk update`. **No RHEL/CentOS:** 1. Os mirrors ficam em `/etc/yum.repos.d/`. 2. Geralmente o sistema escolhe o melhor automaticamente (`fastestmirror`). Tente limpar o cache: ```bash sudo dnf clean all sudo dnf makecache ``` ### Problema 2: Erro de Chave GPG (GPG Error / NO_PUBKEY) Acorre ao adicionar repositórios de terceiros (ex: Docker, Zabbix). **Correção Padrão:** ```bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [CÓDIGO_DA_CHAVE_DO_ERRO] ``` Ou baixe a chave atualizada do fornecedor e coloque em `/etc/apt/trusted.gpg.d/`. ### Problema 3: Lock File ("Could not get lock /var/lib/dpkg/lock") Significa que **outro processo** (como updates automáticos) está usando o APT. 1. **Não force o delete do arquivo de lock** exceto em último caso. 2. Verifique quem está usando: ```bash ps aux | grep apt ``` 3. Aguarde o processo terminar ou mate-o se estiver travado (`sudo kill [PID]`). 4. Se persistir após reboot, remova o lock: ```bash sudo rm /var/lib/dpkg/lock-frontend sudo dpkg --configure -a ``` ## 6. DADOS TÉCNICOS | Sistema | Arquivo de Repositórios | Logs de Instalação | | :--- | :--- | :--- | | **Debian/Ubuntu** | `/etc/apt/sources.list` | `/var/log/apt/history.log` | | **RHEL/CentOS** | `/etc/yum.repos.d/*.repo` | `/var/log/dnf.log` | ## 7. VALIDAÇÃO FINAL - [ ] O comando de update rodou sem erros vermelhos? - [ ] Conseguiu instalar um pacote de teste (ex: `neofetch` ou `htop`)? - [ ] O sistema não reporta dependências quebradas?