Pular para o conteúdo principal

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ísticaapt/yumSnapFlatpakCompilação
UniversalNãoSimSimSim
IsolamentoNãoSimSimNão
TamanhoPequenoGrandeGrandeVariável
PerformanceExcelenteBoaBoaExcelente
AtualizaçõesManualAutoAutoManual
UsoSistemaAplicaçõesDesktopDesenvolvimento

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