Distribuições
Distribuições Linux
Podemos pensar que todas as distribuições do Linux sejam iguais, mas, verdade, existem diferenças entre elas. Gostei uma vez do exemplo que li recentemente no livro do Richard Blum [1] , que fez uma interessante comparação disso com a experiência de alugar um carro. Ao escolher um carro para alugar, você tem consciência que cada marca terá recursos e acessórios diferentes, alguns podem ter câmbio manual, outros automáticos, alguns podem ter airbags, outros não, enfim, ao entrar no carro alugado, nós ajustamos bancos, vidro retrovisor e demoramos algum tempo para descobrir como usar as setas, farol, som e outros acessórios, antes de pegar a estrada. O mesmo acontece ao aprender novas distribuições. Se você já tem bastante experiência com alguma distribuição, aprender uma nova não será um desafio tão grande.
Versões LTS
Sempre prefira versões LTS em sistemas de produção, pois elas priorizam segurança e estabilidade e recebem correções de segurança e bugs por cinco anos, tornando-as ideais para sistemas críticos de negócios e usuários que priorizam a segurança. Um sistema extremamente robusto, baseado nas versões mais recentes e avançadas.[2]
Família Debian
Debian
Ubuntu
Fedora
Kali Linux
Família RedHat
Redhat
Centos
Rocky Linux
Gerenciadores de Pacotes
Uma forma comum de categorizar distribuições Linux é pelo sistema de gerenciamento de pacotes utilizado. O gerenciamento de pacotes em Linux varia conforme a distribuição e é um dos principais critérios de classificação entre elas.
Distribuições como Red Hat Enterprise Linux (RHEL), Fedora e CentOS são baseadas em RPM e são chamadas de distribuições baseadas em RM (RPM-based). O Ubuntu, apesar de popular, pertence à família Debian e utiliza dpkg como gerenciador base.
Basicamente, um pacote Linux é um arquivo compactado (tarball) acrescido de scripts e todos os arquivos necessários para que o software funcione. Além dos binários do software, um pacote inclui metadados com informações como nome, versão e dependências.
Softwares não podem ser deliberadamente copiados entre sistemas diferentes devido a variações de bibliotecas, ferramentas e versões.
Para resolver esse problema, pacotes incluem um manifesto de dependências que especifica outros pacotes e versões necessárias. Dependências podem ter dependências próprias, tornando a instalação manual um processo complexo e propenso a falhas. Falhas de dependência podem causar erros de instalação e impedir o funcionamento correto do software. Pacotes são agrupados por função para reduzir a complexidade para o usuário. O gerenciamento automático de dependências evita o problema conhecido como dependency hell.
Repositórios são coleções de pacotes de software (RPMs, no caso do Rocky/RHEL).
Eles podem estar:
- Na web (padrão, oficiais da distribuição).
- Em servidores locais da empresa (espelho interno).
- Em um diretório local (filesystem repo).
Arquivos de configuração estão localizados em:
ls /etc/yum.repos.d/
Cada arquivo termina em .repo.
dpkg
O dpkg é o gerenciador de pacotes base para distribuições Debian-based.
O apt é um front-end mais moderno para o dpkg, amplamente utilizado em Ubuntu e derivados.
apt-get
O apt-get é o front-end tradicional do dpkg em sistemas Debian-based.
rpm
O RPM é o gerenciador de pacotes base para distribuições Red Hat-based (Linux, CentOS e Fedora), utilizam a extensão .rpm.
A instalação de pacotes com RPM é feita diretamente a partir de um arquivo .rpm local. O RPM mantém um banco de dados com informações sobre todos os pacotes instalados no sistema. Esse banco de dados é armazenado no diretório /var/lib/rpm.
rpm -ivh pacote.rpm # instalar pacote
A remoção de um pacote instalado pode ser feita
rpm -e nome_pacote # remover pacote
A atualização
rpm -Uvh pacote.rpm # atualizar pacote
O comando rpm, antes usado para instalar pacotes, não deve mais ser utilizado para instalação, pois não gerencia dependências automaticamente. o rpm, no entanto, ainda continua útil para consultas, permitindo examinar o banco de dados de pacotes instalados ou pacotes individuais.
yum
O YUM (Yellowdog Updater, Modified) é um front-end clássico para o sistema RPM. Foi um gerenciador de pacotes tradicional das distribuições da família red-hat (como CentOS, Fedora, Rocky e AlmaLinux). A partir do Red Hat Enterprise Linux 8, o YUM foi substituído por dnf (Dandified YUM) — uma versão modernizada com melhor desempenho e gerenciamento de dependências).
ls -l /bin/yum
ls -l /bin/dnf
Ambos são links simbólicos para o mesmo programa base, chamado dnf-3. Portanto, usar yum ou dnf ,atualmente, gera exatamente o mesmo resultado, portanto, não há diferença prática entre eles em sistemas modernos
dnf
YUM e DNF são gerenciadores de pacotes usados em distribuições Red Hat, versões mais recentes utilizam DNF como padrão, conforme informado anteriormente.