manuais-e-documentacao-itguys/documentacao linux/Nivel_2/[Nível 2] Gerenciamento de ...

127 lines
4.3 KiB
Markdown

# 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?