View previous topic :: View next topic |
Author |
Message |
pinho n00b
Joined: 25 Jan 2004 Posts: 3 Location: Rio de Janeiro / Brasil
|
Posted: Fri Feb 20, 2004 3:30 pm Post subject: Como fazer um servidor para compilação de pacotes ? |
|
|
Tenho vontade de usar o gentoo em um grande número de máquinas diferentes, porém é impossível compilar todos os pacotes do gentoo em todas as máquinas por causa do tempo e trabalho.
Gostaria de pegar a máquina mais rápida e transformá-la em um "servidor de compilações", que compilasse os pacotes para as várias arquiteturas (athlon, PII/III, K6-2, P4, etc). Daí bastaria pegar os binários compilados e instalar nas demais máquinas.
Perguntas:
1) Uma máquina pode compilar um mesmo programa para várias arquiteturas diferentes (com diferentes flags do gcc) como eu falei ?
2) Como fazer isso ?
3) Como devo proceder para instalar os pacotes compilados no servidor nas demais máquinas ? Há alguma forma automatizada de fazer isso ?
Agradeço qualquer resposta,
Manoel Pinho |
|
Back to top |
|
|
leandro Tux's lil' helper
Joined: 08 Dec 2003 Posts: 124 Location: São Paulo, Brazil
|
Posted: Fri Feb 20, 2004 5:14 pm Post subject: |
|
|
dá uma olhada nesse thread aqui. |
|
Back to top |
|
|
Enderson Retired Dev
Joined: 12 Nov 2003 Posts: 141 Location: Arapiraca/Maceió, AL, Brazil
|
Posted: Fri Feb 20, 2004 6:12 pm Post subject: |
|
|
Não sei se seria viavel manter um repositorio para varias plataformas. Pois não creio
que seja vantagem vc armazenar os pacotes pre-compilados de uma determinada plataforma
se somente houver 1 computador com aquelas especificações (PIII, K6-2...).
Acho que deve ser avaliado a quantidade de maquinas por tipo de processador.
Por ex.:
5 PCs c/ PIII
5 PCs c/ Athlon XP
1PC c/ PIV
Neste caso acima, vc poderia ter dois repositórios um pra PIII e outro pra XP, mas não há
motivos para manter um repositório para o PIV, pois ele mesmo guardaria seus pacotes.
No caso da compilação, você podria usar todosa da rede, para ajudar cada um a compilar,
utilizando o distcc, eu por exemplo, utilizo o servidor PIV (da empresa) pra ajudar meu
notebook a compilar, usando o distcc, e as vezes o notebook ajuda o server tb .
O que aconteceria no caso acima, seria um dos computadores PIII e um dos XP, ficariam como
o repositorio de cada plataforma, e os outros ajudariam atraves do distcc, a compilar, fazendo
a compilação terminar mais rápida.
Vai da sua organização definir onde compilar, creio que haja uma opção somente pra construir
o pacote tbz2 sem instalar. Daí vc poderia manter uma lista de pacotes, fazer um script que
sempre que houvesse atualizações destes pacotes, ele compilaria e deixaria o pacote pronto
para ser instalado em qual maquina você quiser.
Dar ideias é fácil. Se você por em prática, compartilhe suas experiências conosco. _________________ --
Nothing to say here! |
|
Back to top |
|
|
fernandotcl Veteran
Joined: 20 Nov 2003 Posts: 1396 Location: Sao Paulo, Brazil
|
Posted: Fri Feb 20, 2004 6:20 pm Post subject: |
|
|
Use um só repositório com pacotes precompilados para a máquina com menores especificações. No caso, seria i686 (?). |
|
Back to top |
|
|
Enderson Retired Dev
Joined: 12 Nov 2003 Posts: 141 Location: Arapiraca/Maceió, AL, Brazil
|
Posted: Fri Feb 20, 2004 6:28 pm Post subject: |
|
|
fernandotcl wrote: | Use um só repositório com pacotes precompilados para a máquina com menores especificações. No caso, seria i686 (?). |
Acho que perderia a vantagem da otimização.
Mas seria uma saida mais fácil. _________________ --
Nothing to say here! |
|
Back to top |
|
|
fernandotcl Veteran
Joined: 20 Nov 2003 Posts: 1396 Location: Sao Paulo, Brazil
|
Posted: Fri Feb 20, 2004 6:32 pm Post subject: |
|
|
emaia wrote: | fernandotcl wrote: | Use um só repositório com pacotes precompilados para a máquina com menores especificações. No caso, seria i686 (?). |
Acho que perderia a vantagem da otimização.
Mas seria uma saida mais fácil. |
A otimização de um i686 para um Athlon XP eu acho que é pequena. A maior desvantagem seria tirar as flags de multimídia 3dnow e sse2...
Mesmo assim é melhor que MDK (i586), Slack (i486), e Debian (i386). |
|
Back to top |
|
|
NatuNobilis Tux's lil' helper
Joined: 25 Feb 2003 Posts: 88 Location: Rio de Janeiro, Brazil
|
Posted: Fri Feb 20, 2004 7:06 pm Post subject: |
|
|
fernandotcl wrote: | emaia wrote: | fernandotcl wrote: | Use um só repositório com pacotes precompilados para a máquina com menores especificações. No caso, seria i686 (?). |
Acho que perderia a vantagem da otimização.
Mas seria uma saida mais fácil. |
A otimização de um i686 para um Athlon XP eu acho que é pequena. A maior desvantagem seria tirar as flags de multimídia 3dnow e sse2... |
Já fiz uns testes no meu Athlon XP comparando a otimização (-O3) para: Athlon-XP, Athlon, i686 e i586.
O programa compilado pra i586 foi o mais rápido de todos. Mas a diferença foi MUITO pequena (tipo 0.5 segundo num total de ~20) Todas as CFLAGS foram iguais: -march=blablabla -O3 -pipe -fomit-frame-pointer -mmmx -msse -m3dnow
O programa usado foi clustalw, um programa científico que faz alinhamento de seqüências de DNA e proteínas.
Então acho que mesmo entre i586 e athlon-xp não deve ter muita diferença.
Um abraço,
NatuNobilis |
|
Back to top |
|
|
fernandotcl Veteran
Joined: 20 Nov 2003 Posts: 1396 Location: Sao Paulo, Brazil
|
Posted: Fri Feb 20, 2004 7:21 pm Post subject: |
|
|
NatuNobilis wrote: | Já fiz uns testes no meu Athlon XP comparando a timização (-O3) para: Athlon-XP, Athlon, i686 e i586.
O programa compilado pra i586 foi o mais rápido de todos. Mas a diferença foi MUITO pequena (tipo 0.5 segundo num total de ~20) Todas as CFLAGS foram iguais: -march=blablabla -O3 -pipe -fomit-frame-pointer -mmmx -msse -m3dnow
O programa usado foi clustalw, um programa científico que faz alinhamento de seqüências de DNA e proteínas.
Então acho que mesmo entre i586 e athlon-xp não deve ter muita diferença. |
Isso é bastante interessante. Não é à toa que um benchmark causou tanta polêmica ao colocar o Gentoo em último lugar em velocidade, comparado com Mandrake e Debian.
De certo é o GCC que não optimiza tão bem assim... Eu já vi pessoas usando outros compiladores em seu lugar. |
|
Back to top |
|
|
NatuNobilis Tux's lil' helper
Joined: 25 Feb 2003 Posts: 88 Location: Rio de Janeiro, Brazil
|
Posted: Fri Feb 20, 2004 7:59 pm Post subject: |
|
|
Já viu o Makefile do kernel? Ele diz, antes das CFLAGS pra Athlon/Duron, que no momento não faz a menor diferença entre usar march=athlon ou march=athlon-xp.
Mas uma coisa que eu notei: eu acabei de refazer alguns testes com CFLAGS, dessa vez com um outro programa estilo number-crunching, chamado PAML.
No athlon-xp, march=athlon realmente fica idêntico em desempenho a march=athlon-xp. Mas agora faz diferença entre athlon, i686 e i586. Otimizar pra athlon gerou um programa um pouco mais rápido no athlon-xp.
Agora estou usando gcc-3.3, e não mais o gcc-3.2. Talvez só no 3.3 essas otimizações tenham mudado, sei lá.
Temos que repensar nossa resposta à pergunta "Por que usar Gentoo?" |
|
Back to top |
|
|
fernandotcl Veteran
Joined: 20 Nov 2003 Posts: 1396 Location: Sao Paulo, Brazil
|
Posted: Fri Feb 20, 2004 9:50 pm Post subject: |
|
|
[OFF THE WALL]
NatuNobilis wrote: | Temos que repensar nossa resposta à pergunta "Por que usar Gentoo?" |
Desempenho nunca foi minha resposta.
Algumas distros dão uma melhorada em seus pacotes, talvez essa possa ser uma explicação para um desempenho melhor delas.
Agora, a minha resposta:
-- Debian:
Eu achava que a integração entre programas binários seria melhor, porque seriam compilados por pessoas experientes. Um furo n'água. Por exemplo, o xf86config cria o arquivo XF86Config-4, enquanto o X procura XF86Config. Ok, estava na versão "testing". Mas na stable eu só conseguiria o XFce 3.8!
Instalar o Debian também é uma porcaria. Existe um método chamado Debootstrap, que pra mim não funcionou. Disquetes bootáveis pra mim não funcionaram. Aliás, nenhum método de instalação via rede funcionou. Eu não estou em rede, e ele não consegue configurar o adsl na instalação. Só mesmo com o cd de 700mb... Documentação então, nem se fala. É precária.
-- Kurumim
Kurumim foi uma grande decepção pra mim. Não detectou minha placa de rede e não me deixou configurar porque o sistema estava na RAM (read only, não sei porquê).
Além disso têm vários quirks, mesmo porque é uma distro em live-cd...
Mas é uma distro que tem uma importância e deve ser exaltada, apesar de preferirmos Gentoo.
-- Slackware
Distro muito boa. Só peca na falta de gerenciamento de dependências no sistema de empacotamento, que pode ser corrigido com o slapt-get ou com outro programa parecido que eu esqueci. Também parece ser mais difícil que o necessário, apesar de ser mais fácil que o Gentoo, pois tem mais aplicações de configuração próprias.
-- Mandrake, Red Hat e compania
São muito boas, mas são comerciais. Quando muda de versão, você tem que gravar novas isos...
-- Conectiva
Anda meio falida, dizem que não suporta muita coisa. Achei uma tentativa de Red Hat mal feita.
-- Fedora
A distro que a Red Hat usa como base para o Red Hat, seus usuários tendem a ser "cobaias".
-- Gentoo
É bom saber exatamente quais pacotes estão instalados. É colocar o CD, instalar o básico e o kernel e dar o boot. Depois, é só no emerge.
Fica fácil com o tempo, é extremamente atualizável, ótimo para desenvolvimento (já tem bibliotecas, headers, compiladores e tudo mais para fazer o portage funcionar ).
Repositório extremamente atualizado. Sistema de empacotamento bem desenvolvido. Comunidade participativa composta por técnicos e power users. Fórum gigantesco.
[/OFF THE WALL]
Desculpem o OTW enorme. Comecei a escrever e não parei mais... De volta ao tópico. |
|
Back to top |
|
|
r3pek Retired Dev
Joined: 17 Sep 2003 Posts: 568 Location: Lisbon - Portugal
|
Posted: Fri Feb 20, 2004 10:10 pm Post subject: |
|
|
bem, se o teu problema é falta de tempo, para além das resoluções que já foram propstas podes sempre experimentar distcc. acho que ha um howto por aí algures.
EDIT:
achei o gajo http://www.gentoo.org/doc/en/distcc.xml |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|