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