Capítulo 10.3 - Compilação e Pacotes Alternativos
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compilar softwares a partir do código-fonte
- Utilizar Snap para pacotes universais
- Utilizar Flatpak para aplicações
- Entender as vantagens/desvantagens
- Escolher a ferramenta certa para cada caso
Compilação a partir do Código-Fonte
Pré-requisitos
# Ferramentas de compilação
sudo apt install build-essential # Ubuntu/Debian
sudo yum groupinstall "Development Tools" # Red Hat/CentOS
# Ferramentas necessárias
# - gcc/g++ (compilador)
# - make (build system)
# - autoconf, automake
# - libtool
Processo Padrão
# 1. Baixar o código-fonte
wget http://example.com/software-1.0.tar.gz
tar -xzf software-1.0.tar.gz
cd software-1.0
# 2. Configuração
./configure --prefix=/usr/local
# Opções comuns
./configure --prefix=/usr/local \
--enable-feature \
--disable-other \
--with-library=/usr/lib
# 3. Compilação
make
# 4. Instalação
sudo make install
# 5. Limpeza (opcional)
make clean
Exemplo Completo
#!/bin/bash
# Exemplo de compilação
VERSION="1.0"
SOFTWARE="mon-software"
PREFIX="/usr/local"
# Baixar
wget "http://example.com/${SOFTWARE}-${VERSION}.tar.gz"
tar -xzf "${SOFTWARE}-${VERSION}.tar.gz"
cd "${SOFTWARE}-${VERSION}"
# Configurar
./configure --prefix="$PREFIX"
# Compilar
make -j$(nproc) # Usa todos os CPUs
# Instalar
sudo make install
# Verificar
which mon-software
mon-software --version
Snap
O que é Snap?
Snap é um sistema de pacotes universal desenvolvido pela Canonical.
Vantagens:
- Universal (todas as distribuições)
- Autoatualização
- Isolamento (sandbox)
- Dependências incluídas
Instalação
# Ubuntu (já instalado)
# Outras distribuições
sudo apt install snapd # Debian
sudo yum install snapd # Red Hat/CentOS
Utilização
# Buscar
snap find nom-paquet
# Instalar
sudo snap install nom-paquet
# Listar instalados
snap list
# Atualizar
sudo snap refresh nom-paquet
sudo snap refresh # Todos
# Remover
sudo snap remove nom-paquet
# Informações
snap info nom-paquet
Exemplos
# Aplicações populares
sudo snap install code # VS Code
sudo snap install docker # Docker
sudo snap install node --classic # Node.js
sudo snap install chromium # Chromium
Flatpak
O que é Flatpak?
Flatpak é um sistema universal de distribuição de aplicações.
Vantagens:
- Universal
- Isolamento
- Aplicações desktop
- Repositórios (Flathub)
Instalação
# Ubuntu/Debian
sudo apt install flatpak
# Red Hat/CentOS/Fedora
sudo yum install flatpak
# ou
sudo dnf install flatpak
Configuração
# Adicionar Flathub (repositório principal)
flatpak remote-add --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo
# Ver repositórios
flatpak remotes
Utilização
# Buscar
flatpak search nom-app
# Instalar
flatpak install flathub nom-app
# Listar instalados
flatpak list
# Atualizar
flatpak update nom-app
flatpak update # Todos
# Remover
flatpak uninstall nom-app
# Informações
flatpak info nom-app
Exemplos
# Aplicações populares
flatpak install flathub org.gimp.GIMP
flatpak install flathub org.videolan.VLC
flatpak install flathub com.spotify.Client
Comparação
| Característica | apt/yum | Snap | Flatpak | Compilação |
|---|---|---|---|---|
| Universal | Não | Sim | Sim | Sim |
| Isolamento | Não | Sim | Sim | Não |
| Tamanho | Pequeno | Grande | Grande | Variável |
| Performance | Excelente | Boa | Boa | Excelente |
| Atualizações | Manual | Auto | Auto | Manual |
| Uso | Sistema | Aplicações | Desktop | Desenvolvimento |
Escolhendo a Ferramenta Certa
apt/yum
Quando usar:
- Pacotes de sistema
- Serviços de servidor
- Performance crítica
- Controle total
Snap
Quando usar:
- Aplicações universais
- Atualizações automáticas
- Isolamento necessário
- Desenvolvimento
Flatpak
Quando usar:
- Aplicações desktop
- Isolamento necessário
- Multi-distribuições
- Aplicações gráficas
Compilação
Quando usar:
- Versão específica necessária
- Opções de compilação personalizadas
- Não existe pacote disponível
- Desenvolvimento
Boas Práticas
Compilação
# 1. Ler README/INSTALL
# 2. Verificar dependências
# 3. Usar --prefix apropriado
# 4. Testar antes de instalar
# 5. Documentar opções utilizadas
Snap/Flatpak
# 1. Verificar fonte (oficial)
# 2. Entender permissões
# 3. Monitorar espaço em disco
# 4. Atualizar regularmente
Resumo
Neste capítulo, você aprendeu:
Compilação: configure, make, make install
Snap: Pacotes universais, autoatualização, isolamento
Flatpak: Aplicações desktop, Flathub, isolamento
Comparação: Escolher conforme a necessidade
Prática: Compilar, instalar Snap/Flatpak
Próximos Passos
Módulo 11: Monitoramento e Logs (com crons de monitoramento)
Módulo 12: Administração Avançada
Capítulo criado em: Dezembro 2024