Metro, um breve tutorial

Metro é uma ferramenta automatizada de distribuição usada para criar construções diárias de nossos estágios oficiais de Funtoo/Gentoo Linux. Ele usa um exemplo baseado em receita para definir os passos da construção.

[ Hits: 13.574 ]

Por: Rodrigo Chaves em 06/08/2010 | Blog: http://exherbo-br.blogspot.com/


Tentando uma construção real



Para começarmos tudo, precisamos de um processo auto sustentável (bootstrap) baixando uma stage3 inicial para ser usada na construção e colocando-a em seu lugar apropriado em /home/mirror/linux, para que o Metro a encontre. Nós também precisaremos criar alguns arquivos de "controle" em /home/mirror/linux, que ajudarão o Metro a entender como deve proceder.

Passo 1: Ativar o repositório x86

Assumindo que iremos seguir os passos básicos previamente mencionados na seção anterior, e criaremos uma imagem Funtoo instável (~funtoo) construída para o Intel Pentium 4, usando uma stage3 genérica como estágio semente, então os primeiros passos que seguiríamos seriam:

# install -d /home/mirror/linux/~funtoo/x86
# cd /home/mirror/linux/~funtoo/x86
# install -d ~funtoo-x86-2010.07.23
# cd ~funtoo-x86-2010.07.23
# wget http://distro.ibiblio.org/pub/linux/distributions/funtoo/~funtoo/x86/~funtoo-x86-2010.07.23/stage3-x86-2010.07.23.tar.xz
# cd ..
# install -d .control/version
# echo "2010.07.23" > .control/version/stage3
# install -d .control/strategy
# echo "local" > .control/strategy/build
# echo "stage3" > .control/strategy/seed


OK, vamos rever os passos acima. Primeiro, nós criamos o diretório /home/mirror/linux/~funtoo/x86, que é onde o Metro vai esperar encontrar as construções instáveis ~funtoo -- ele é configurado para procurar nesse diretório por padrão.

Então nós criamos um diretório com um nome especial para hospedar nossa semente stage3. Novamente, por padrão, Metro espera que o diretório seja nomeado assim. Nós entramos nesse diretório, e baixamos nossa semente x86 stage3 de funtoo.org. Note que a estampa de versão 2010.07.23 bate.

Esteja certo que o nome do seu diretório bata com o nome da stage3 também. Tudo está preparado para bater com o esquema de arquivos padrão do Metro.

Depois nós voltamos ao diretório /home/mirror/linux/~funtoo/x86, e dentro dele criamos um diretório nomeado .control. Esse diretório e seus subdiretórios contém arquivos especiais que o Metro referencia para determinar certos aspectos de seu comportamento.

O arquivo .control/version/stage3 é usado pelo metro para rastrear a imagem de stage3 mais recentemente construída para esta construção e sub-arquitetura em particular. Metro vai automaticamente atualizar este arquivo com um novo selo de versão depois que construir com sucesso uma nova stage3. Mas como o Metro não realmente construiu esta stage3, nós precisamos preparar o arquivo .control/version/stage3 manualmente. Isto permite que o Metro encontre a stage3 baixada enquanto nós preparamos nossa construção pentium4 para a utilizar como semente.

Note também que Metro irá criar um arquivo .control/version/stage1 após construir uma imagem stage1 x86 ~funtoo.

Nós também preparamos os arquivos .control/strategy/build e .control/strategy/seed com os valores local e stage3 respectivamente. Esses arquivos definem a estratégia de construção que o Metro irá usar quando construir as stages x86 ~funtoo.

Com a estratégia de construção local, Metro irá obter sua imagem de estágio semente a partir do diretório atual. E com a estratégia semente de stage3, Metro irá usar uma stage3 como semente, e usá-la para construir uma nova stage1, stage2 e stage3.

Passo 2: Ativar o repositório Pentium 4

Casualmente, se tudo que você queria até esse ponto era criar uma nova stage1/2/3 (mais templates openvz e vserver) x86 ~funtoo Metro está totalmente configurado para isso. Você pode iniciar o processo com:

# /usr/lib/metro/scripts/ezbuild.sh ~funtoo x86

Mas, em nosso exemplo, nós estamos fazendo algo um pouco mais complexo -- usando essa stage3 x86 ~funtoo pra semear uma nova construção pentium4 ~funtoo. Para fazê-lo, nós teremos que ativar o repositório de construção pentium4 como segue:

# cd /home/mirror/linux/~funtoo
# install -d pentium4
# cd pentium4
# install -d .control/strategy
# echo "remote" > .control/strategy/build
# echo "stage3" > .control/strategy/seed
# install -d .control/remote
# echo "~funtoo" > .control/remote/build
# echo "x86" > .control/remote/subarch


Estes passos que seguimos são muito similares aos que nós realizamos para o diretório x86. No entanto, note as diferenças. Nós não baixamos uma stage, porque nós iremos usar a stage x86 para construir uma nova stage pentium4. Nós também não criamos os arquivos .control/version/stage{1,3} porque Metro irá criá-los pra nós após construir uma nova stage1 e stage3 com sucesso.

Nós ainda estamos usando uma stage3 como estratégia semente, mas nós preparamos a estratégia de construção para remote, o que significa que nós iremos usar um estágio semente que não é deste diretório em particular. Onde nós iremos encontrá-lo? O diretório .control/remote contém essa informação, e permite que o Metro saiba que deve procurar sua semente stage3 no diretório /home/mirror/linux/~funtoo/x86.

Qual pegar? Você adivinhou -- a stage3 mais recentemente construída (veja que nossa estratégia foi determinada stage3) que tenha a estampa de versão de 2010.07.23, como gravado em /home/mirror/linux/~funtoo/.control/version/stage3. Agora você pode ver todos aqueles arquivos de controle juntos para direcionar o Metro a fazer a coisa certa.

Neste ponto você poderia começar a construir sua nova stage1/2/3(templates openvz e vserver) digitando o seguinte:

# /usr/lib/metro/scripts/ezbuild.sh ~funtoo pentium4

Após cada estágio ser criado, este será colocado em um subdiretório /home/mirror/linux/~funtoo/pentium4/~funtoo-pentium4-AAAA.MM.DD, onde AAAA.MM.DD é a data do dia em que o script ezbuild.sh foi executado.

Conclusão ou a próxima construção

Neste ponto você tem uma nova stage3 pentium4. Se você preferir, você pode reconfigurar o Metro pra usar a stage3 pentium4 mais recente como semente pra qualquer construção pentium4. Para fazer isso, simplesmente:

# echo "local" > /home/mirror/linux/~funtoo/pentium4/.control/strategy/build

Agora Metro irá usar a stage3 pentium4 mais recente como semente. Os arquivos .control/remote que criamos serão ignorados pelo metro, desde que o mesmo não vai mais realizar uma construção remota.

Página anterior    

Páginas do artigo
   1. Instalando
   2. Primeiros passos
   3. Tentando uma construção real
Outros artigos deste autor

Instalação e configuração da zsh no Gentoo GNU/Linux

Leitura recomendada

Iniciante KUbuntu 7.10 (curto e grosso)

Pós-instalação do Debian 9 para novatos

Instalação do Moodle 3.0 no CentOS 7

Distribuições Linux

Utilizando o Xterm

  
Comentários
[1] Comentário enviado por sukelly em 06/08/2010 - 10:46h

Adorei, muito bom.
Parabéns.

[2] Comentário enviado por albfneto em 06/08/2010 - 15:45h

Legal, ensinando a galera a usar Metro.
ví outra dica sua, gosta de zsh, eu também!
apenas uma observação, vc cita que se o usuário não tem a árvore do Portage,pode usar GIT,
masacho que a pessoa pode usar Portage ou GIT,
mas há duas coisas, Metro é para Funtoo e Gentoo, e todo Funtoo e Gentoo tem Portage alguns poucos tem Paludis).
Mas além disso,Funtoo é GIT oriented...
e GIT é muito bom e muito rápido

[3] Comentário enviado por stilldre em 06/08/2010 - 18:49h

é verdade e eu sou um viciado em git. e no funtoo, ao usar o portage ele estará usando o git, por isso mencionei que pode-se usar o git se não tiver portage do funtoo...

[4] Comentário enviado por rootgerr em 08/08/2010 - 13:43h

Grande contribuição para os aficcionados da compilação parabéns

[5] Comentário enviado por stilldre em 08/08/2010 - 19:17h

um adendo. se alguém tiver problemas com as imagens de estágio em formato xz, pode facilmente convertê-las como abaixo:

# xz -dc stage3-<versão>.tar.xz |bzip2 -9 > stage3-<versão>.tar.bz2

[6] Comentário enviado por samykzy em 10/09/2010 - 09:03h

Gostei, me ajudou hehe


Contribuir com comentário