Recompile o pacote da origem para outro servidor

3

Eu tenho alguns servidores (10) rodando o Debian Lenny no x86. Eu preciso compilar alguns pacotes da fonte. Eu sei que não é uma boa prática ter uma ferramenta de compilação em um servidor de produção (por segurança).

Eu quero saber se posso compilar esses pacotes em um único computador (x86) e instalá-los nos servidores?

Existe algum problema?

Exemplos de pacotes

  • kernel-source
  • Apache
  • PHP5
  • ...

Muito obrigado.

    
por Kortex786 16.06.2009 / 06:28

5 respostas

5

Você tem dez servidores Lenny todos executando o arco x86. É completamente possível construir um único pacote que se instala em qualquer computador que esteja executando um arco específico. É uma boa prática construir pacotes Debian com pbuilder , para evitar problemas com "trabalhos sobre a caixa de desenvolvimento".

É relativamente simples reconstruir um pacote. apt-get tem um comando source que irá baixar o código fonte. Se tudo o que é necessário é uma simples alteração de configure , você está quase pronto. Edite o arquivo debian/rules , e a versão bata o pacote com algo como ~jldugger0 , então você sobrescreve a versão debian da qual você deriva, mas nada mais recente do Debian. Basta incrementar o 0 à direita para continuar a aumentar as versões locais. Não bata na versão Debian diretamente, e pelo amor de Deus, NÃO BATER NO EPOCH - se você quer assegurar que versões mais novas não substituam mudanças locais, fixe o pacote. Esteja ciente de que você está incorrendo em riscos substanciais de segurança e precisa encontrar alguma maneira de assinar as alterações no pacote para revisão.

Os dois problemas com versões locais de pacotes são: esforços devem ser feitos para acompanhar as novas versões. Se a sua alteração for simples o suficiente, você poderá conseguir um script que aplique patches. Se for invasivo, não forçar mudanças a montante irá custar-lhe quantidades cada vez maiores à medida que os conflitos se acumulam. O outro problema é o das dependências. O kernel, o Apache e o PHP são todos componentes principais dos quais outros pacotes dependem. Considere se as alterações que você deseja fazer em um pacote afetarão outros pacotes dependendo dele.

    
por 16.06.2009 / 07:23
1

Desde que os servidores sejam da mesma distribuição (e tenham a mesma plataforma, x86), compilar em um deles e instalar em vários não deve fazer diferença. Seria tão bom quanto obter binários pré-compilados ou um pacote em si.

De fato, você também pode empacotar (ou apenas tar.bz2 o diretório compilado, levá-lo para cada servidor, extrair localmente e executar make install lá.

Quando a instalação estiver concluída, basta excluir o diretório extraído desses servidores.

    
por 16.06.2009 / 06:50
1

Se a arquitetura é a mesma, então será bastante simples. Se não, então é chamado de compilação cruzada e precisa de um pouco de configuração.

Talvez uma ideia seja configurar um repositório debian interno para pacotes personalizados. Dessa forma, o pacote estará disponível para seus servidores via apt (contanto que eles saibam sobre o seu repositório personalizado)

    
por 16.06.2009 / 07:00
0

Você poderia:

  • Como outros já responderam, compile-os em pacotes (ou arquivos tar) e copie e instale-os,
  • Compile todos eles em um servidor, instale-os em um diretório compartilhado e monte-o pelo NFS (/ usr / local ou / usr / share vêm à mente). Isso não funcionará para as imagens do kernel, obviamente.
por 16.06.2009 / 07:03
0

Você também pode usar o comando make-kpkg para criar pacotes .deb que serão muito similares ao que você pode encontrar em repositórios padrão.

    
por 16.06.2009 / 07:16