Meus artigos: Distribuições Linux do meu ponto de vista
De Ramoni
Conteúdo |
Introdução
Todos têm suas distribuições preferidas, alguns até usam diversas delas dependendo do que tenha que fazer.
Eu sou desses.
Percepção
Esse papo de que "quem sabe linux usa qualquer distro" infelizmente não vale mais. Perdemos isso. O que era para ser uma coisa boa acabou sendo esquecido.
Eu sei usar o ifconfig, o iproute2 etc, mas toda distribuição que pego, me deparo com o problema de "Como nesta distro eu gravo essas configurações ?", porque cada uma tem uma forma específica de configurar a rede. Algumas mais flexíveis outras menos.
Se os scripts de configuração da rede na inicialização nada mais fazem do que ler arquivos e executar os comandos ifconfig e route, porque tornar a coisa tão complicada ?
A melhor opção era colocar os comandos em um script lido no boot. Assim, eu configuraria tudo da maneira "universal".
E pra achar o arquivo que é lido todo boot ? No SuSE é um, debian outro, slackware é o padrão, gentoo faz sentido... mas em fim, exige conhecimento da distro.
Sem contar com distros que exigem que a rede tenha sido configurada por algum programa dela específico, se não, outras coisas que dependem da rede não irão subir.
Algumas distros parecem te impedir de fazer coisas. Você quer baixar um programa, compilar e instalar e a distro não consegue compilar porque falta alguma biblioteca de desenvolvimento. Você prontamente procura pelo sistema de pacotes da distro pelo nome da biblioteca, mas não acha pacote algum. Você precisa advinhar qual foi o nome pra biblioteca que os desenvolvedores deram....
Fora isso, por algum mistério, coisas que deveriam funcionar por padrão não funcionam.
Todos sabem que existem distros voltadas para servidores, para desktops etc, mas tem algumas que parecem ser voltadas para si mesmas.
Por exemplo: em algumas distros se você precisa de uma biblioteca mais nova para rodar um programa e instala a versão mais nova da biblioteca, você não acha a versão mais nova para sua distribuição, e se for tentar instalá-la manualmente, quebra mil outros programas e não há mais o que fazer.
Necessidades
Cada distribuição tem seu foco, e não há como ser diferente disso.
Somente um programador consegue imaginar a complexidade de unir 500 softwares e bibliotecas comuns de autores diferentes, que rodam em plataformas diferentes, e colocá-los para funcionar em conjunto em cima de um kernel. É complicado.
Eu costumo dizer que uma distribuição Linux é composta de kernel Linux + softwares + cagadas que a distribuidora faz.
A que comete menos cagadas, e mantém a coisa mais original, é sempre a melhor opção para quem vai interagir diretamente com a base do sistema.
Ao mesmo tempo, é sabido que em pró da simplicidade perde-se funcionalidade. Nada contra.
Qual é a distro certa para você ?
Para quem conhece Linux
Uma distribuição não pode tornar difícil fazer alguma tarefa, muito menos tornar impossível.
Tem que ser amigável para quem conhece linux, e não impor barreiras ou exigir todo um estudo para quem já sabe como a coisa funciona. Não ser "amarrada".
Se tiver um sistema de pacotes, que seja um que não manifeste qualquer frescura de você instalar coisas na mão.
Em fim, precisa ser uma distribuição que seja simples, sem coisas mascaradas, sem mágicas, e que qualquer um que conheca Linux vá conseguir fazer as acrobacias que quiser.
A distribuição precisa se comportar da forma que o usuário que conhece Linux prevê que ela vá funcionar.
Não instale uma distro assim para sua mãe usar se você não quiser dor de cabeça.
Se você conhece Linux e vai montar um servidor, procure a distro que menos vai te impedir de exercer o seu conhecimento sobre Unix-like.
Para usuários
Precisa ser simples de instalar, se possível sem perguntas de partionamento envolvendo sda sdb hdc etc.
Precisa funcionar "out of the box". Detectar o som, dispositivos USB, webcams, impressoras etc.
Precisa ter um sistema de pacotes simples e rápido.
Precisa ter tudo disponível graficamente, pois usuários comuns não sabem e querem aprender comandos.
Pode tornar as coisas difíceis para quem sabe Linux. Pois um usuário nunca vai montar um servidor web, dns email etc. Essas distros podem vir com configurações que "apenas funcionem", para suprir as necessidades de um usuário.
Essas distros, no entando, não devem ser usadas para servidor, pois são "otimizadas" para serem muito permissivas e exigirem pouco conhecimento. Tempo de boot enorme e mil programas inúteis rodando que são desnecessários em ambiente de servidor.
Na minha opinião, o caos na Internet, principalmente no e-mail, deve-se à administradores patetas instalando distros pra usuários (porque não conhecem Linux) como servidores.. aí vem os open relay, open proxy, DNS recursivos etc....
Se você é usuário, existem várias distros ótimas. Mas se você não conhece Linux nem protocolos, por favor, faça um favor para a Internet e não monte servidores.
Opinião, prós e contras
Debian
Prós
- O sistema de pacotes.
Ele calcula dependências, instala tudo que for necessário e pronto, tudo funciona.
O sistema de pacotes faz apenas o que todo sistema de pacotes deveria fazer: instalar aplicativos.
Contras
- O sistema de pacotes.
Um grande problema da maioria dos sistemas pacotes é o controle das dependências. Se para instalar um pacote você precisa de uma biblioteca, e você instala a biblioteca sem ser pelo sistema de pacotes, o sistema de pacotes criará um problema para instalar o software, pois para ele aquela biblioteca não foi instalada. Ou seja, a distro gera um problema devido a uma atitude do usuário. Isso vale para todos os sistemas de pacotes que gerenciam dependências.
- Algumas configurações são muito amarradas dependendo do seu conhecimento sobre Debian, não bastando o conhecimento de Linux.
RedHat
Prós
- O sistema de pacotes.
Contras
- O sistema de pacotes
Gentoo
Prós
- O sistema de "pacotes"
O gentoo por natureza foi concebido com um sistema não de pacotes, mas de automatização de instalação de softwares. Baixar um software, compilar e instalar sempre é a melhor opção, pois é a forma natural de instalação esperada pelo mantenedor do software. Além disso, não há problemas de depender de upgrades de libs já que o que você baixa é o source e ele será compilado cpara o ambiente que você tem.
Contras
- O sistema de "pacotes"
O upgrade de uma biblioteca pode exigir que programas linkados à ela sejam recompilados. Na verdade, isso não é um problema. É uma consequência da forma de desenvolvimento dos softwares envolvidos. É a maneira normal como as coisas tem que fluir. O problema é que exige tempo e que o controle de que upgrade exige recompilação do que que é muito complexo.
Slackware
Prós
- Simplicidade
O slackware é o mais simples dos Linux hoje sem dúvidas. Você pode entender e controlar fácilmente todo o sistema de inicialização e todo software que você instalar vai funcionar, a não ser que você não saiba Linux.
Se você tem experiência com Unix-like, use Slackware. As coisas funcionarão.
- Sistema de pacotes
O sistema de pacotes do slackware não exige dependências, nem cria bases de estado complexas que caso corrompidas ferram a distro toda.
Quando você baixa um pacote tgz e descompacta ele (sim, i installpkg faz quase apenas isso) e ele não roda, você pode ver pelo ldd o que é que falta. Se você não tem a biblioteca, pode instalá-la na mão ou via pacote se houver. O "sistema de pacotes" não irá criar barreiras por você ter a biblioteca instalada na mão.
Quando você baixa o fonte de um programa e vai compilá-lo, o ./configure irá acusar alguma dependência caso haja. Você é livre para instalar a tal dependência como pacote ou como source.
O Slackware não te cria problemas e nem se mete nas suas opções. Se você sabe como a coisa funciona, não terá problemas.
- Inicialização e tempo de boot
O slackware utiliza poucos scripts simples para inicialização, permitindo fácil compreensão e controle do que é executado durante o boot.
São shell scripts simples que você pode editar trocando ordem, comentando linhas e acrescentando outras.
O tempo de boot de um slackware bem configurado para servidores é imbatível.
Contras
- Sistema de pacotes
Não fornece as funcionalidades mínimas para um usuário leigo.
