Source vs Package Managers no trabalho

6

Estou um pouco confuso, pois há duas maneiras de instalar aplicativos. Sendo um deles para configurar e fazer da fonte e outro de um gerenciador de pacotes. Se alguém fosse um administrador UNIX / Linux, é justo usar gerenciadores de pacotes e é confiável? Eu me deparei com alguns lugares, o que parece dizer que os administradores de hoje realmente não sabem o que estão fazendo, porque não fazem as coisas do zero e preferem o gerenciamento de pacotes.

Então, como um aspirante a administrador do UNIX, sei que deveria conhecer tanto as methoods quanto eu, mas que deveria ser escolhido primeiro. Como exemplo, em uma entrevista de emprego, se solicitado a configurar o Apache, alguém alcança a fonte ou o gerenciador de pacotes?

    
por Recursion 27.02.2010 / 06:03

6 respostas

11

Eu sempre procuro o gerenciador de pacotes primeiro. No entanto, instâncias onde eu compilo da fonte:

  • O pacote está lamentavelmente desatualizado. Isso é mais comum do que deveria ser.
  • Eu quero instalar em um local diferente dos padrões do pacote. Eu faço muito isso em minhas instâncias do Amazon EC2 para que eu possa instalar em meu dispositivo EBS em vez de armazenamento local efêmero.
  • O aplicativo precisa ser compilado usando opções diferentes ou com um patch de origem. PHP é o culpado mais comum aqui.
  • O aplicativo é uma dependência de outra coisa que você deseja instalar e seu gerenciador de pacotes não tem um pacote de desenvolvimento / cabeçalhos correspondente. Não é tão comum, mas acontece de tempos em tempos.
por 27.02.2010 / 06:46
4

Como administrador do sistema, você deve saber como lidar com a fonte ... claro. Em um ambiente de produção é aconselhável usar pacotes da origem. Eu diria apenas sob certas situações onde a versão da distro não suporta suas necessidades.

O problema com a origem é que você é responsável por garantir a aplicação de quaisquer correções de segurança no código do aplicativo e em qualquer biblioteca da qual ele dependa. Ou você tem que alternar continuamente a versão para ficar com o mais recente código seguro, o que não é uma boa opção para um servidor de produção na maioria das vezes. Enquanto uma distro devolverá os patches de segurança à versão que eles suportam por muitos anos. Portanto, basta dizer ao seu gerenciador de pacotes para atualizar o sistema para mantê-lo atualizado com os patches de segurança. Isso é muito mais administrável a longo prazo.

Como administrador do sistema, você também precisa pensar em quem vem atrás de você. Herdar um sistema com uma miscelânea de pacotes de código-fonte não é muito divertido e custará à empresa mais dinheiro a longo prazo.

    
por 27.02.2010 / 06:50
3

I have come across a few places, which seems to say today's admins really don't know what they are doing, because they don't do things from scratch and instead prefer package management.

Eu acredito que esta declaração não é precisa. Certamente, um administrador de sistema precisa saber como compilar a partir da fonte, e é muito raro que alguém não tenha feito isso pelo menos uma vez.

No entanto, como tudo na vida, decidir qual método se deve usar, é baseado nos requisitos:

1) Se as versões do pacote da distribuição oficial cobrirem suas necessidades de recursos, a resposta é clara: Use o sistema de pacotes. Não há desculpa para a facilidade que o sistema de pacotes oferece. Ele instala automaticamente todas as dependências e seu trabalho é limitado nos arquivos de configuração. As distribuições mais famosas (Redhat, Centos, debian) mantêm os pacotes oficiais constantemente atualizados, já que backport todos os patches de segurança, e você não precisa se preocupar com atualizações de segurança, pois elas podem ser atualizadas automaticamente. Isso é muito útil em um servidor de produção, já que você gasta seu tempo na administração do sistema, na auditoria, etc., em vez de verificar constantemente se um pacote tem uma nova atualização.

2) Se o seu projeto precisa dos recursos mais recentes que apenas as versões mais recentes - dos aplicativos que você precisa - fornecem, então você deve compilar tudo desde a origem. É demorado e você precisa monitorar constantemente se uma nova versão sai com bugs de segurança. Então você tem que recompilar tudo. A desvantagem é clara. No entanto, o problema é maior se você tiver que administrar mais de um servidor. Nesse caso, a maneira mais fácil é criar um repositório próprio, criar seus próprios pacotes com base no código-fonte da versão mais recente e usar novamente o gerenciador de pacotes em cada servidor para atualizar os pacotes usando seu repositório.

    
por 27.02.2010 / 10:35
2

Se você vai usar qualquer tipo de gerenciamento de configuração automatizado, como puppet , chef , cfadmin , et al, então você precisará se sentir confortável com o funcionamento dos pacotes do seu * nix. Também saiba onde estão os bons repositórios de terceiros, pois eles geralmente contêm pacotes atualizados se você estiver usando uma distribuição Enterprise ou LTS.

Se você precisar compilar algo da fonte, recomendo usar um esquema consistente de layout e nomenclatura. Leia como autoconf funciona e use a diretiva --prefix .

Pessoalmente, gosto de instalar meu material compilado personalizado em /opt , por exemplo

/opt/nginx/nginx-0.6.44

então eu crio um symlink current

/opt/nginx/current

então symlink todos os binários do pacote em um local conhecido como

/opt/bin

por exemplo

cd /opt/bin && find /opt/nginx/current/bin -type f -exec ln {} \;

Permitir-me-á adicionar /opt/bin ao meu $PATH e alternar entre as versões do nginx é tão simples como instalar a nova versão em /opt/nginx/nginx-$VERSION e atualizar a ligação simbólica

    
por 27.02.2010 / 09:00
2

today's admins really don't know what they are doing, because they don't do things from scratch and instead prefer package management.

Eu não acho que um administrador não saiba o que eles estão fazendo porque eles não escolhem usar o gerenciamento de pacotes. Existem muitas boas razões para usar um gerenciador de pacotes. Eu acho que eles não sabem o que estão fazendo quando não querem entender; como funciona o sistema de gerenciamento de pacotes, como construir seus próprios pacotes ou quando devem construir seus próprios pacotes.

Normalmente você pode obter suporte comercial de distribuições como Redhat e Ubuntu. Você descobrirá que obter suporte é muito mais fácil se você estiver usando os pacotes oficialmente suportados e não algo que você construiu sozinho.

Existem também algumas aplicações comerciais que exigem que você use os pacotes oficiais com suporte para realmente fazer o produto funcionar.

If one were a UNIX/Linux administrator, is it fair to use package managers and is it trustworthy

As vantagens dos pacotes de grandes distribuições oficiais, como Redhat, Ubuntu, Debian e outras, é que muitas pessoas as estão usando, há força nos números. Todos os principais distribuidores oferecem a fonte que você precisa para reconstruir o pacote. Mas se você não confiar nos distribuidores para construir um pacote, como você pode até mesmo confiar que não há nada errado na fonte que você baixou? Você tem as habilidades para realizar uma auditoria de código do código-fonte? Você será capaz de detectar uma porta dos fundos na fonte ou um bug explorável? Em um certo ponto, você terá que confiar em alguém porque provavelmente não terá tempo para revisar cada linha de código que entra em um sistema operacional.

on a job interview if asked to set up Apache, does one reach for the source or the package manager?

Para responder à pergunta, você precisa dedicar algum tempo para estudar os requisitos. Freqüentemente, perguntar os tipos certos de perguntas em sua entrevista de emprego será mais impressionante do que uma simples resposta. Você também pode, basta escolher um método, e dizer-lhes algumas razões pelas quais esse método é bom, e algumas razões pelas quais esse método é ruim.

  • Eles precisam de um suporte comercial estável
  • Eles precisam de algum recurso incomum que não esteja ativado
  • Espera apoiar vários servidores no futuro
  • Você tem hosts suficientes executando o apache em sua rede que você pode pagar para fazer seu próprio monitoramento dos feeds de segurança do upstream e das listas de segurança.

I am a bit confused, as there are two ways to install applications. One being to configure and make from source and the other from a package manager.

Você pulou a terceira opção. Crie seus próprios pacotes e mantenha um repositório local referenciado por um gerenciador de pacotes. Construir seus próprios pacotes é preferível porque o que você construiu fará parte do sistema padrão. Alguém familiarizado com o gerenciador de pacotes saberá como desinstalá-lo. Eles poderão obter informações sobre isso.

    
por 27.02.2010 / 09:39
0

Se você está recebendo seus pacotes em um local de boa reputação, provavelmente está bem. Eu não teria nenhum escrúpulo particular sobre a instalação do Apache com o apt-get, mas eu deveria qualificar isso com a observação de que nós geralmente usamos o Linux para funções não-críticas.

    
por 27.02.2010 / 06:21