Gerenciadores de Pacotes

Diferente do Windows (baixar .exe), Linux usa gerenciadores de pacotes centralizados que:

  • Instalam software de repositórios confiáveis
  • Resolvem dependências automaticamente
  • Mantêm sistema atualizado
  • Removem software completamente

Principais Gerenciadores por Distribuição

DistribuiçãoGerenciadorFormatoComando
Ubuntu/DebianAPT.debapt, apt-get, dpkg
Fedora/RHELDNF.rpmdnf, yum
Arch LinuxPacman.pkg.tar.zstpacman
openSUSEZypper.rpmzypper

APT - Debian/Ubuntu

Comandos Essenciais

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# Atualizar lista de pacotes
sudo apt update

# Atualizar sistema
sudo apt upgrade

# Atualizar com remoção de pacotes obsoletos
sudo apt full-upgrade

# Instalar pacote
sudo apt install nginx

# Instalar múltiplos pacotes
sudo apt install vim git curl

# Remover pacote (mantém configurações)
sudo apt remove nginx

# Remover completamente (inclui configurações)
sudo apt purge nginx

# Remover pacotes não utilizados
sudo apt autoremove

# Buscar pacote
apt search nginx

# Informações sobre pacote
apt show nginx

# Listar pacotes instalados
apt list --installed

# Listar pacotes atualizáveis
apt list --upgradable

# Limpar cache de pacotes
sudo apt clean
sudo apt autoclean

apt vs apt-get

apt é mais moderno e user-friendly:

1
2
3
4
5
6
7
# Preferir (apt)
sudo apt update
sudo apt install pacote

# Antigo (apt-get)
sudo apt-get update
sudo apt-get install pacote

dpkg - Gerenciador de Baixo Nível

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# Instalar pacote .deb local
sudo dpkg -i pacote.deb

# Remover pacote
sudo dpkg -r pacote

# Listar pacotes instalados
dpkg -l

# Listar arquivos de um pacote
dpkg -L nginx

# Verificar qual pacote instalou um arquivo
dpkg -S /usr/bin/vim

# Corrigir dependências quebradas
sudo apt --fix-broken install

Repositórios

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Adicionar repositório PPA (Ubuntu)
sudo add-apt-repository ppa:nome/ppa
sudo apt update

# Remover PPA
sudo add-apt-repository --remove ppa:nome/ppa

# Editar sources.list
sudo vim /etc/apt/sources.list

# Repositórios adicionais
ls /etc/apt/sources.list.d/

DNF/YUM - Fedora/RHEL/CentOS

Comandos DNF (Fedora 22+)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Atualizar cache
sudo dnf check-update

# Atualizar sistema
sudo dnf upgrade

# Instalar pacote
sudo dnf install nginx

# Remover pacote
sudo dnf remove nginx

# Buscar pacote
dnf search nginx

# Informações sobre pacote
dnf info nginx

# Listar pacotes instalados
dnf list installed

# Listar grupos de pacotes
dnf group list

# Instalar grupo
sudo dnf group install "Development Tools"

# Limpar cache
sudo dnf clean all

# Histórico de transações
dnf history

# Desfazer última transação
sudo dnf history undo last

Comandos YUM (CentOS 7, RHEL 7)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Atualizar sistema
sudo yum update

# Instalar pacote
sudo yum install nginx

# Remover pacote
sudo yum remove nginx

# Buscar pacote
yum search nginx

# Informações
yum info nginx

# Listar instalados
yum list installed

# Limpar cache
sudo yum clean all

RPM - Gerenciador de Baixo Nível

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Instalar pacote .rpm local
sudo rpm -ivh pacote.rpm

# Atualizar pacote
sudo rpm -Uvh pacote.rpm

# Remover pacote
sudo rpm -e pacote

# Listar pacotes instalados
rpm -qa

# Informações sobre pacote
rpm -qi nginx

# Listar arquivos de pacote
rpm -ql nginx

# Verificar qual pacote instalou arquivo
rpm -qf /usr/bin/vim

Repositórios EPEL

1
2
3
4
5
6
# Instalar EPEL (Extra Packages for Enterprise Linux)
# RHEL/CentOS 8
sudo dnf install epel-release

# RHEL/CentOS 7
sudo yum install epel-release

Pacman - Arch Linux

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Atualizar sistema
sudo pacman -Syu

# Instalar pacote
sudo pacman -S nginx

# Remover pacote
sudo pacman -R nginx

# Remover com dependências não usadas
sudo pacman -Rs nginx

# Buscar pacote
pacman -Ss nginx

# Informações sobre pacote
pacman -Si nginx

# Listar pacotes instalados
pacman -Q

# Listar arquivos de pacote
pacman -Ql nginx

# Limpar cache
sudo pacman -Sc

# Remover pacotes órfãos
sudo pacman -Rns $(pacman -Qtdq)

AUR - Arch User Repository

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Instalar yay (AUR helper)
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

# Usar yay
yay -S pacote-aur

# Atualizar incluindo AUR
yay -Syu

Zypper - openSUSE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Atualizar sistema
sudo zypper update

# Instalar pacote
sudo zypper install nginx

# Remover pacote
sudo zypper remove nginx

# Buscar pacote
zypper search nginx

# Informações
zypper info nginx

# Listar repositórios
zypper repos

# Adicionar repositório
sudo zypper addrepo URL nome

# Limpar cache
sudo zypper clean

Snap - Universal Package Manager

Funciona em várias distribuições:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# Instalar snapd
sudo apt install snapd  # Ubuntu
sudo dnf install snapd  # Fedora

# Buscar snap
snap find nome

# Instalar snap
sudo snap install nome

# Listar snaps instalados
snap list

# Atualizar snaps
sudo snap refresh

# Remover snap
sudo snap remove nome

# Informações
snap info nome

Exemplos populares:

1
2
3
sudo snap install code --classic        # VS Code
sudo snap install spotify               # Spotify
sudo snap install docker                # Docker

Flatpak - Universal Package Manager

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Instalar flatpak
sudo apt install flatpak  # Ubuntu
sudo dnf install flatpak  # Fedora

# Adicionar Flathub
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# Buscar aplicação
flatpak search nome

# Instalar
flatpak install flathub org.gimp.GIMP

# Listar instalados
flatpak list

# Executar
flatpak run org.gimp.GIMP

# Atualizar
flatpak update

# Remover
flatpak uninstall org.gimp.GIMP

# Remover dados não usados
flatpak uninstall --unused

AppImage - Portable Apps

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Baixar AppImage
wget https://exemplo.com/app.AppImage

# Tornar executável
chmod +x app.AppImage

# Executar
./app.AppImage

# Integrar ao sistema (opcional)
sudo apt install libfuse2  # Dependência

Compilar do Código Fonte

Método Tradicional (./configure, make, make install)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Instalar ferramentas de compilação
# Ubuntu/Debian
sudo apt install build-essential

# Fedora
sudo dnf groupinstall "Development Tools"

# Baixar código fonte
wget https://exemplo.com/software-1.0.tar.gz
tar xzf software-1.0.tar.gz
cd software-1.0

# Configurar
./configure --prefix=/usr/local

# Compilar
make

# Instalar
sudo make install

# Desinstalar (se suportado)
sudo make uninstall

CMake

1
2
3
4
5
6
7
8
9
# Instalar CMake
sudo apt install cmake

# Compilar
mkdir build
cd build
cmake ..
make
sudo make install

Checkinstall - Criar Pacote

1
2
3
4
5
6
7
# Instalar checkinstall
sudo apt install checkinstall

# Usar no lugar de make install
sudo checkinstall

# Cria pacote .deb/.rpm que pode ser removido depois

Gerenciamento de Dependências

Resolver Dependências Quebradas

Ubuntu/Debian:

1
2
sudo apt --fix-broken install
sudo dpkg --configure -a

Fedora:

1
2
sudo dnf check
sudo dnf distro-sync

Verificar Dependências

1
2
3
4
5
6
7
# Ubuntu/Debian
apt-cache depends nginx
apt-cache rdepends nginx  # Dependências reversas

# Fedora
dnf repoquery --requires nginx
dnf repoquery --whatrequires nginx

Atualizações de Sistema

Ubuntu/Debian

1
2
3
4
5
6
7
# Atualização completa
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

# Atualização de versão (ex: 22.04 -> 24.04)
sudo do-release-upgrade

Fedora

1
2
3
4
5
6
# Atualização completa
sudo dnf upgrade -y

# Atualização de versão
sudo dnf system-upgrade download --releasever=39
sudo dnf system-upgrade reboot

Arch Linux

1
2
# Atualização completa (sempre full upgrade)
sudo pacman -Syu

Segurança e Verificação

Verificar Assinaturas

1
2
3
4
5
6
# Ubuntu/Debian - chaves GPG
sudo apt-key list
sudo apt-key add chave.gpg

# Fedora - chaves RPM
rpm --import chave.gpg

Verificar Integridade

1
2
3
4
5
6
# Verificar pacote instalado
# Ubuntu/Debian
sudo debsums -c

# Fedora
rpm -V pacote

Casos de Uso Práticos

1. Instalar Stack LAMP

Ubuntu/Debian:

1
2
3
4
sudo apt update
sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql
sudo systemctl enable apache2
sudo systemctl start apache2

Fedora:

1
2
3
sudo dnf install -y httpd mariadb-server php php-mysqlnd
sudo systemctl enable httpd mariadb
sudo systemctl start httpd mariadb

2. Instalar Ferramentas de Desenvolvimento

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# Ubuntu/Debian
sudo apt install -y \
  build-essential \
  git \
  vim \
  curl \
  wget \
  python3-pip \
  nodejs \
  npm

# Fedora
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y \
  git \
  vim \
  curl \
  wget \
  python3-pip \
  nodejs \
  npm

3. Manter Sistema Atualizado (Script)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/bash
# update-system.sh

if [ -f /etc/debian_version ]; then
    sudo apt update
    sudo apt upgrade -y
    sudo apt autoremove -y
    sudo apt autoclean
elif [ -f /etc/redhat-release ]; then
    sudo dnf upgrade -y
    sudo dnf autoremove -y
    sudo dnf clean all
elif [ -f /etc/arch-release ]; then
    sudo pacman -Syu --noconfirm
fi

echo "Sistema atualizado!"

4. Backup de Pacotes Instalados

Ubuntu/Debian:

1
2
3
4
5
6
# Exportar lista
dpkg --get-selections > pacotes.txt

# Restaurar em outro sistema
sudo dpkg --set-selections < pacotes.txt
sudo apt-get dselect-upgrade

Fedora:

1
2
3
4
5
# Exportar lista
dnf list installed > pacotes.txt

# Instalar de lista
sudo dnf install $(cat pacotes.txt | awk '{print $1}')

Troubleshooting Comum

Problema: Pacote não encontrado

1
2
3
4
5
6
7
# Atualizar cache
sudo apt update  # Ubuntu
sudo dnf check-update  # Fedora

# Buscar em todos repositórios
apt search nome
dnf search all nome

Problema: Dependências quebradas

1
2
3
4
5
6
7
# Ubuntu/Debian
sudo apt --fix-broken install
sudo dpkg --configure -a

# Fedora
sudo dnf check
sudo dnf distro-sync

Problema: Conflito de versões

1
2
3
4
5
6
7
8
9
# Ubuntu/Debian - segurar versão
sudo apt-mark hold pacote

# Liberar
sudo apt-mark unhold pacote

# Fedora - excluir de updates
# Editar /etc/dnf/dnf.conf
exclude=pacote

Problema: Espaço em disco cheio

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Limpar cache
sudo apt clean  # Ubuntu
sudo dnf clean all  # Fedora

# Remover pacotes antigos
sudo apt autoremove  # Ubuntu
sudo dnf autoremove  # Fedora

# Verificar espaço
df -h
du -sh /var/cache/apt/archives  # Ubuntu
du -sh /var/cache/dnf  # Fedora

Boas Práticas

1. Sempre Atualize Antes de Instalar

1
sudo apt update && sudo apt install pacote

2. Use Repositórios Oficiais

Evite adicionar PPAs/repositórios desconhecidos.

3. Mantenha Sistema Atualizado

1
2
3
4
# Configure atualizações automáticas de segurança
# Ubuntu
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

4. Faça Backup Antes de Grandes Atualizações

1
2
3
# Snapshot com Timeshift
sudo apt install timeshift
sudo timeshift --create

5. Leia Changelogs

1
apt changelog pacote

Comandos de Referência Rápida

Ubuntu/Debian (APT)

1
2
3
4
5
6
sudo apt update                    # Atualizar lista
sudo apt upgrade                   # Atualizar pacotes
sudo apt install pacote            # Instalar
sudo apt remove pacote             # Remover
sudo apt search pacote             # Buscar
apt show pacote                    # Informações

Fedora (DNF)

1
2
3
4
5
6
sudo dnf check-update              # Verificar atualizações
sudo dnf upgrade                   # Atualizar
sudo dnf install pacote            # Instalar
sudo dnf remove pacote             # Remover
dnf search pacote                  # Buscar
dnf info pacote                    # Informações

Arch (Pacman)

1
2
3
4
5
sudo pacman -Syu                   # Atualizar sistema
sudo pacman -S pacote              # Instalar
sudo pacman -R pacote              # Remover
pacman -Ss pacote                  # Buscar
pacman -Si pacote                  # Informações

Recursos Adicionais

Documentação

1
2
3
man apt
man dnf
man pacman

Próximo capítulo: 6 - Configuração de Rede

Capítulo anterior: 4 - Gerenciamento de Arquivos e Permissões