Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Como fazer um servidor para compilação de pacotes ?
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Portuguese
View previous topic :: View next topic  
Author Message
pinho
n00b
n00b


Joined: 25 Jan 2004
Posts: 3
Location: Rio de Janeiro / Brasil

PostPosted: Fri Feb 20, 2004 3:30 pm    Post subject: Como fazer um servidor para compilação de pacotes ? Reply with quote

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
View user's profile Send private message
leandro
Tux's lil' helper
Tux's lil' helper


Joined: 08 Dec 2003
Posts: 124
Location: São Paulo, Brazil

PostPosted: Fri Feb 20, 2004 5:14 pm    Post subject: Reply with quote

dá uma olhada nesse thread aqui. :)
Back to top
View user's profile Send private message
Enderson
Retired Dev
Retired Dev


Joined: 12 Nov 2003
Posts: 141
Location: Arapiraca/Maceió, AL, Brazil

PostPosted: Fri Feb 20, 2004 6:12 pm    Post subject: Reply with quote

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
View user's profile Send private message
fernandotcl
Veteran
Veteran


Joined: 20 Nov 2003
Posts: 1396
Location: Sao Paulo, Brazil

PostPosted: Fri Feb 20, 2004 6:20 pm    Post subject: Reply with quote

Use um só repositório com pacotes precompilados para a máquina com menores especificações. No caso, seria i686 (?).
Back to top
View user's profile Send private message
Enderson
Retired Dev
Retired Dev


Joined: 12 Nov 2003
Posts: 141
Location: Arapiraca/Maceió, AL, Brazil

PostPosted: Fri Feb 20, 2004 6:28 pm    Post subject: Reply with quote

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
View user's profile Send private message
fernandotcl
Veteran
Veteran


Joined: 20 Nov 2003
Posts: 1396
Location: Sao Paulo, Brazil

PostPosted: Fri Feb 20, 2004 6:32 pm    Post subject: Reply with quote

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). :D
Back to top
View user's profile Send private message
NatuNobilis
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2003
Posts: 88
Location: Rio de Janeiro, Brazil

PostPosted: Fri Feb 20, 2004 7:06 pm    Post subject: Reply with quote

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
View user's profile Send private message
fernandotcl
Veteran
Veteran


Joined: 20 Nov 2003
Posts: 1396
Location: Sao Paulo, Brazil

PostPosted: Fri Feb 20, 2004 7:21 pm    Post subject: Reply with quote

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. 8O

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
View user's profile Send private message
NatuNobilis
Tux's lil' helper
Tux's lil' helper


Joined: 25 Feb 2003
Posts: 88
Location: Rio de Janeiro, Brazil

PostPosted: Fri Feb 20, 2004 7:59 pm    Post subject: Reply with quote

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?" :? :roll:
Back to top
View user's profile Send private message
fernandotcl
Veteran
Veteran


Joined: 20 Nov 2003
Posts: 1396
Location: Sao Paulo, Brazil

PostPosted: Fri Feb 20, 2004 9:50 pm    Post subject: Reply with quote

[OFF THE WALL]

NatuNobilis wrote:
Temos que repensar nossa resposta à pergunta "Por que usar Gentoo?" :? :roll:


Desempenho nunca foi minha resposta. :D

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! 8O

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. :D

-- 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. :D 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. :D

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 :D).

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. :D
Back to top
View user's profile Send private message
r3pek
Retired Dev
Retired Dev


Joined: 17 Sep 2003
Posts: 568
Location: Lisbon - Portugal

PostPosted: Fri Feb 20, 2004 10:10 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portuguese All times are GMT
Page 1 of 1

 
Jump to:  
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