Distribuições baseadas em fontes vs distribuições baseadas em pacotes pré-construídos

4

Eu me pergunto qual é a preferência geral e de onde ela vem. Tendo usado o FreeBSD ativamente por alguns anos, estou me inclinando para o Gentoo, mas tive uma experiência desagradável de desperdiçar tempo valioso, porque o Gentoo foi instalado em uma máquina realmente antiga, com tempos de construção infelizes.

Se houvesse algum pacote pré-construído baseado, menos tempo seria desperdiçado. (Eu sei que o FreeBSD tem pacotes binários, mas o problema é que eles aparentemente não são mantidos após o lançamento de uma versão e a única maneira de obter coisas novas é compilar você mesmo. Não sei muito sobre o Gentoo).

Qual é a sua opinião sobre isso? Você já teve alguma experiência que fez com que você mudasse da distribuição baseada em código-fonte para outra coisa?

EDIT: acho que devo esclarecer esta recente "experiência da minha"

A história é assim. Tendo mudado de emprego, tenho que manter uma máquina antiga que hospeda o LDAP (OpenLDAP) com informações de login do usuário no escritório. Chegou a mim ter que reiniciar o monstro (ele não foi reiniciado por 8 meses). Após a reinicialização, o OpenLDAP não ficou online. Parece que o slapd e alguns outros binários foram removidos de alguma forma enquanto o sistema estava rodando. Depois de criar o pacote ldap pela primeira vez, fiquei imaginando por que não recebi nenhum binário do slapd (levou 15 minutos). Algum tempo depois eu rastreei o problema até o sinalizador "mínimo" estar ativado por padrão, que cria apenas as bibliotecas, sem binários do servidor. Resultado final - ~ 1 hora de produtividade de escritório prejudicada e colegas usando desculpas como "eu não fiz isso porque nosso servidor principal estava inativo".

-

Realmente aprecie suas respostas, mas até agora não há argumentos convincentes para usar o pacote baseado em código-fonte vs pré-construído. O espaço de armazenamento não é um problema nos dias de hoje.

    
por Karolis T. 12.06.2009 / 12:25

13 respostas

15

Eu mantenho mais do que um bom número de máquinas Gentoo.

Não porque nos importamos com a sintonização infantil da velocidade dos funroll-loops. O que nos interessa é a flexibilidade de instalar precisamente o que queremos, não o recurso de todos pacotes e a dependência que um colaborador pensa que poderíamos desejar um dia. Estamos perfeitamente confortáveis com o funcionamento do Linux, da compilação e das bibliotecas. Nós não queremos que tudo seja abstraído de nós em uma caixa preta.

Você deve optar por usar o que mais lhe convier. Aqui estão alguns detalhes que podem ajudar a acalmar seus medos do Gentoo especificamente.

  • Os tempos de compilação são relativamente insignificantes no hardware moderno. Ainda mais se suas máquinas são de redundância N + 1.

  • Você pode ser exigente sobre como o portage se comporta, como colocar MAKEOPTS="-l 1.0" em seu make.conf para garantir que o novo compila o backoff quando a média de carga estiver aumentando muito.

  • Você pode usar pacotes binários do Portage, se preferir. Os espelhos fornecem vários pacotes comuns ou você pode criar seus próprios com --buildpkgonly .

  • Se você tiver um grande número de máquinas, poderá se beneficiar de ter um host de compilação nomeado ou uma compilação distribuída.

  • As versões estáveis mais recentes do Portage que estão em uso são muito menos prováveis de deixá-lo alto e seco ao executar atualizações. Contos de conflitos e bloqueios são basicamente coisas do passado.

  • Se você está cuidando de tantas máquinas que as atualizações se tornam dolorosas, então você deve estar olhando para o Puppet / BCFG / cfengine de qualquer maneira;)

Atualização em resposta à edição da pergunta:

Embora eu tenha empatia com a situação que você descreve, não é algo que seja sintomático de distribuições baseadas em fontes ou de fato impedido usando uma distribuição baseada em pacotes. É o resultado de:

  1. Sua própria natural falta de estilo e
  2. Pouca documentação interna do seu antecessor

Verdade seja dita, eu não usei extensivamente nenhuma outra distribuição do Linux já há algum tempo. Por essa razão, se você colocasse uma máquina Debian (por exemplo) no meu colo e me dissesse que o OpenLDAP não estava funcionando depois de uma reinicialização, eu também poderia gastar 15 minutos ou uma hora para resolver o problema. Não porque eu não tenha um bom entendimento do Linux ou que o Debian não seja um bom sistema operacional, mas principalmente porque eu não me lembro dos detalhes íntimos dos scripts RC ou do sistema de pacotes do Debian. É por isso que a documentação interna é essencial dentro de uma organização. Deve servir para impulsionar o desconhecido e preencher as lacunas de todos os outros. Mesmo que eles saibam tudo.

Apenas uma nota rápida especificamente sobre o Gentoo. Os flags de USE do Portage são incrivelmente úteis e "minimal" é algo que eu uso com frequência. Por exemplo, eu não quero que os binários do servidor de um pacote sejam instalados em uma máquina que sempre será um cliente durante sua vida útil. Tê-los desnecessariamente presentes pode aumentar a complexidade ou até mesmo ser uma preocupação de segurança. Nunca é uma questão de espaço. Você pode ver quais opções e dependências de USE um pacote irá adotar (e quais não são) antes de começar a compilar usando os argumentos -av . Então você não deve ter surpresas.

GNUix > Desculpe, tire!

    
por 12.06.2009 / 13:43
7

Eu não vou comentar se você deve usar o Gentoo ou não - ou se a construção da fonte 'vale a pena'

O que eu direi é que eu uso o Gentoo e o Ubuntu. Eu costumava usar o Gentoo para todas as minhas máquinas GNU / Linux, mas decidi que o Ubuntu nos meus desktops era mais fácil de gerenciar. Eu estou do lado dos administradores que acham que usar o Gentoo para um servidor é uma ótima idéia - e usá-lo para quase todos os meus servidores pessoais.

Além de tudo isso, o que eu mais gosto de construir coisas a partir de fontes ou ajustes CFLAGS é o Portage. O Portage é simplesmente o melhor pacote e ferramenta de gerenciamento de sistemas que já usei para GNU / Linux. Eu posso criar um ambiente exato com apenas as coisas que eu preciso e não uma coisa mais e posso fazê-lo sem sair do meu sistema de gerenciamento de pacotes. Eu não tenho que ter o postfix instalado simplesmente porque algum cara de embalagem decidiu que é 'necessário'. Eu não preciso de mono instalado porque eu quero rodar o Gnome, eu simplesmente não instalo o Tomboy. Navegar rapidamente pelos pacotes instalados nesta área de trabalho do Ubuntu mostra que ele tem o bind instalado? Por quê? Não serve para nada, não estou executando um servidor DNS neste computador e certamente não preciso da documentação para ele, mas está aqui.

A desvantagem ... o tempo. Demora não apenas no tempo para construir pacotes, mas também para manter o sistema mantido. Posso ter certeza absoluta de que posso executar uma atualização de sudo aptitude {upgrade} e não ter um cuidado no mundo ... Por outro lado, você precisa ter muito cuidado com os pequenos detalhes ao atualizar uma máquina Gentoo e certificar-se de que você precisa (e está preparado) para o que quer fazer. A 'palha que quebrou os camelos de volta' por dizer que eu mudei para o Ubuntu para meus desktops foi uma atualização do udev que borked uma configuração que eu tinha - ao invés de tentar consertá-lo eu queria começar o trabalho que eu estava tentando fazer feito. Então eu percebi que realmente não me importo se a documentação do bind está ocupando espaço na minha área de trabalho porque eu tenho espaço.

Em meus servidores, no entanto, assunto totalmente diferente. Eu quero controlar tudo sobre o ambiente, os pacotes que estão instalados, cada detalhe que eu quero controlar - e o Gentoo me permite fazer isso com facilidade.

    
por 12.06.2009 / 13:35
4

A vida é muito curta para distribuições baseadas em fontes. Eu tenho coisas mais importantes para fazer. Gosta de usar o computador.

    
por 12.06.2009 / 14:34
2

Você sempre pode usar uma combinação de ambos os métodos - usar uma distribuição pré-compilada como base e ter as vantagens de um bom ambiente integrado de trabalho e atualizações rápidas e sem esforço ao usar softwares autocompilados nos quais é necessário estar de ponta do desenvolvimento desse software. Seja por ter alguma autodisciplina (usando o configure com a opção de prefixo) ou empacotando a fonte você mesmo. Você sempre pode "reutilizar" as instruções de compilação (arquivo de especificação rpm ou subdiretório debian por exemplo).

    
por 12.06.2009 / 12:41
1

Eu não usaria o mecanismo de criação diretamente nos servidores de produção. Nos meus dias do Gentoo, sei que existe a possibilidade de ter um host de compilação e criar os pacotes necessários nesse host, para que você possa gravar ciclos de cpu em um host dedicado com os sinalizadores de compilação adequados às suas necessidades.

No geral não há muita diferença, quase todos os nossos servidores executam o Debian, mas acabamos tendo um host de compilação de qualquer maneira. Nós precisávamos de alguns pacotes de software que não estavam disponíveis como debs então montamos um reprepro e um buildhost para as nossas necessidades, o buildhost é praticamente não-mantido (em termos de "funciona") porque a reimplantação é apenas uma questão de alguns minutos, já que podemos netboot e ele irá se reimplantar automaticamente.

Portas BSD / Gentoo / Debian Não importa muito o lucro real com o uso de um sistema (como na coleção de serviços em hosts diferentes que fornecem valor comercial) que minimiza os recursos desperdiçados e é sustentável. Nós escolhemos o Debian porque as atualizações de segurança são simples e elas são pré-compiladas para que não tenhamos que "perder tempo" reconstruindo pacotes sempre que uma atualização de segurança é lançada. Essa é a única desvantagem em que posso pensar para distribuições baseadas em fontes vs. baseadas em binários.

    
por 12.06.2009 / 12:46
1

Eu era um ávido usuário do Gentoo para minha máquina MythTV, mas recentemente mudei para o Debian devido ao tempo necessário para atualizar uma máquina Gentoo. Bem, você só precisa realmente atualizar a cada 6 meses, mas como você mencionou, os tempos de compilação podem ser um pouco demais.

O melhor dos dois mundos seria o ArchLinux, que tem distribuições binárias, mas um sistema de compilação simples para permitir a criação de pacotes quase no estilo Gentoo. Você pode escolher o que deseja compilar manualmente.

Para um sistema de produção, pessoalmente, eu ficaria longe de distros de origem e ficaria com algo estável e possivelmente suportado (dependendo da sua equipe técnica), seja Debian ou RHEL.

    
por 12.06.2009 / 12:47
1

Sinceramente, não consigo pensar em uma boa razão para usar uma distribuição baseada em fontes que não seja para fins educacionais (talvez).

Minha distribuição fornece pacotes fonte para todos os seus pacotes binários, então tenho a liberdade de construir o que eu quiser quando quiser e, mais importante, tenho a capacidade de não ter que construir tudo o tempo todo.

    
por 12.06.2009 / 21:03
1

O Gentoo é incrível não só por causa das vantagens das distribuições baseadas em fontes, mas porque cada passo do caminho é projetado para personalização.

arquivos de configuração nunca são atualizados, cópias com o prefixo ._cfg000 são colocadas em / etc e uma mensagem é exibida para você mover os novos arquivos de configuração no lugar dos existentes.

Acho que, com um pouco de esforço, o gentoo pode tornar coisas complexas muito fáceis de fazer.

    
por 05.07.2009 / 08:05
1

Eu vou ser um Johnny-come-ultimamente porque eu procurei por esse tópico, e tenho certeza que alguém também irá.

Nós usamos o Debian em todos os servidores ao vivo porque:

  1. A instalação é simples.
  2. Atualizações de segurança são óbvias.
  3. A instalação de um novo software é óbvia.
  4. A equipe do Debian trabalha muito para manter as coisas atualizadas.
  5. Por vários motivos, estamos usando um único servidor Gentoo. E nós nunca iremos atualizá-lo novamente, porque a última vez que tentei fazer uma atualização de segurança para algo importante para o sistema (pense em: bibliotecas críticas do sistema), BAD THINGS aconteceu . Não podemos nos dar ao luxo de ter pequenas paralisações com esse servidor, porque ele é muito importante para a missão e os clientes realmente os notam, além de que os servidores Asterisk e os PRIs associados são muito difíceis e caros para tornar o N + 1 redundante. O tamanho da nossa base de clientes (pequena) também não garante ou paga por ela. Preferiríamos encarar a (provavelmente pequena) possibilidade de uma violação de segurança por meio de um bug no sistema operacional do que a inevitável falha de nosso sistema, porque é sensível e projetada para pessoas que gostam de mexer e brincar com as coisas.

A facilidade de administração de sistemas é o número 1 em nossos livros. Um sistema fácil nas mãos de um especialista é sinônimo de alta confiabilidade e disponibilidade.

    
por 18.08.2009 / 18:59
0

Eu não uso o Gentoo há alguns anos, mas minha experiência limitada com ele me levou à conclusão de que os aumentos de velocidade (quase imperceptíveis) obtidos pela compilação dos pacotes foram superados em muito pela desvantagem do tempo gasto para construir o sistema. Eu sempre usei sistemas baseados em pacotes pré-compilados desde então. Eu sei que, pessoalmente, eu não gostaria de gastar tanto tempo compilando fontes em servidores - especialmente quando precisando atualizar pacotes ao longo do tempo.

    
por 12.06.2009 / 12:32
0

Bem, há muitos anos, as otimizações do compilador e tal poderiam extrair o desempenho extra em seu hardware específico. O hardware de hoje é tão poderoso que não faz mais nenhuma diferença perceptível.

Agora estou usando o Debian por causa da facilidade de atualização de servidores. Leva 2 minutos para atualizar um grande número de pacotes com o mínimo de tempo de inatividade comparado ao FreeBSD. Eu ainda uso o FreeBSD para algumas aplicações específicas (como o MySQL e o BIND), mas isso é apenas por causa da preferência pessoal (e o histórico desses dois aplicativos sendo muito rápido e estável no FreeBSD).

Meu conselho para qualquer um que perguntar sobre o sistema operacional: Use o que você se sentir confortável.

    
por 12.06.2009 / 12:32
0

Para sua situação específica, eu recomendaria o OpenBSD:

  • As portas são bem mantidas e estão disponíveis na forma de origem e binária. Se você compilar sua própria porta, ela será transformada em um pacote binário adequado para uso em outras máquinas da mesma arquitetura.
  • O OpenBSD roda bem em hardware mais antigo.
  • Também é um BSD, muitas coisas sobre sua experiência com o FreeBSD serão similares no OpenBSD.
  • Além dos pacotes binários / de origem, você pode personalizar, se necessário, e, em seguida, construa seu próprio release , o que significa que você pode fazer compilação em hardware de montagem rápida e depois implantar em hardware mais lento.

Para situações normais, você vai querer ir com binário todo o caminho. É mantido atualizado e é a mesma coisa que você teria se você mesmo construísse. A única exceção é quando você precisa de algo compilado com opções especiais que não estão disponíveis em formato binário. Mas realmente, por que escolher quando sua plataforma pode lhe dar o melhor dos dois mundos?

    
por 12.06.2009 / 21:16
0

Não consigo pensar em nada pior do que usar uma distribuição de origem. Se você tem um grande número de máquinas para manter, e você quer que elas se comportem consistentemente, usar uma distribuição de pacotes binários é absolutamente essencial.

Se você está instalando uma atualização em 100 máquinas, você realmente quer que ela seja compilada em 100 lugares? Concedido, os compiladores devem ser consistentes e devem gerar binários semelhantes, mas basicamente não há garantia.

Depois, há testes. Seus ambientes de teste podem ser muito SEMELHANTES à produção, mas você ainda pode estar testando um binário que tenha um comportamento diferente da produção.

Use um binário e você tem uma certeza maior de que ele se comportará da mesma maneira em toda a infraestrutura; Você tem uma chance maior de que o código testado seja o mesmo que o código implantado. Você também tem uma chance maior de que o código funcione consistentemente em seus sistemas de produção (mesmo que ele não seja tão otimizado quanto um com otimizações específicas da CPU).

    
por 12.06.2009 / 22:15