| rev |
line source |
|
claudinei@529
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
claudinei@529
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
claudinei@529
|
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
|
|
claudinei@529
|
4 <head>
|
|
claudinei@529
|
5 <title>Livro de Receitas do SliTaz - Build Bot</title>
|
|
claudinei@529
|
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
|
|
claudinei@529
|
7 <meta name="description" content="slitaz portuguese cookbook" />
|
|
claudinei@529
|
8 <meta name="expires" content="never" />
|
|
claudinei@529
|
9 <meta name="modified" content="2009-06-20 00:10:00" />
|
|
claudinei@529
|
10 <meta name="publisher" content="www.slitaz.org" />
|
|
claudinei@529
|
11 <meta name="author" content="SliTaz contributors"/>
|
|
claudinei@529
|
12 <link rel="shortcut icon" href="favicon.ico" />
|
|
claudinei@529
|
13 <link rel="stylesheet" type="text/css" href="book.css" />
|
|
claudinei@529
|
14 </head>
|
|
claudinei@529
|
15 <body bgcolor="#ffffff">
|
|
claudinei@529
|
16
|
|
claudinei@529
|
17 <!-- Header and quick navigation -->
|
|
claudinei@529
|
18 <div id="header">
|
|
claudinei@529
|
19 <div align="right" id="quicknav">
|
|
claudinei@529
|
20 <a name="top"></a>
|
|
claudinei@529
|
21 <a href="boot-scripts.html">Scripts de Inicialização</a> |
|
|
claudinei@529
|
22 <a href="index.html">Conteúdo</a>
|
|
claudinei@529
|
23 </div>
|
|
claudinei@529
|
24 <h1><font color="#3E1220">SliTaz Cookbook (pt)</font></h1>
|
|
claudinei@529
|
25 </div>
|
|
claudinei@529
|
26
|
|
claudinei@529
|
27 <!-- Content. -->
|
|
claudinei@529
|
28 <div id="content">
|
|
claudinei@529
|
29 <div class="content-right"></div>
|
|
claudinei@529
|
30
|
|
claudinei@529
|
31 <h2><font color="#DF8F06">Build Bot (tazbb)</font></h2>
|
|
claudinei@529
|
32
|
|
claudinei@529
|
33 <p>
|
|
claudinei@529
|
34 O objetivo do Tazbb é automatizar, testar e criar relatórios sobre os
|
|
claudinei@529
|
35 pacotes gerados no wok. A execução do comando <code>tazbb usage</code>
|
|
claudinei@529
|
36 mostra uma lista de comandos disponiveis e sua descrição. O status
|
|
claudinei@529
|
37 do Build Bot pode ser acompanhado na interface web do Tazbb em
|
|
claudinei@529
|
38 <a href="http://bb.slitaz.org/">bb.slitaz.org</a>. Colaborações podem ser
|
|
claudinei@529
|
39 feitas na <a href="http://labs.slitaz.org/wiki/distro/Tazbb">Tazbb Wiki</a>.
|
|
claudinei@529
|
40 </p>
|
|
claudinei@529
|
41
|
|
claudinei@529
|
42 <ul>
|
|
claudinei@529
|
43 <li><a href="#about">Como funciona</a></li>
|
|
claudinei@529
|
44 <li><a href="#cmds">Comandos</a></li>
|
|
claudinei@529
|
45 <li><a href="#woks">Hg e chroot Wok</a></li>
|
|
claudinei@529
|
46 <li><a href="#log">Arquivos de Log</a></li>
|
|
claudinei@529
|
47 <li><a href="#web">Interface Web</a></li>
|
|
claudinei@529
|
48 <li><a href="#hg-hook">Hg hook</a></li>
|
|
claudinei@529
|
49 <li><a href="#cron">Cron Job</a></li>
|
|
claudinei@529
|
50 <li><a href="#db">Arquivos de banco de dados</a></li>
|
|
claudinei@529
|
51 </ul>
|
|
claudinei@529
|
52
|
|
claudinei@529
|
53 <a name="about"></a>
|
|
claudinei@529
|
54 <h3>Como funciona</h3>
|
|
claudinei@529
|
55 <p>
|
|
claudinei@529
|
56 O Tazbb pode ser executado por um cron job e checa pelo último commit
|
|
claudinei@529
|
57 feito por algum colaborador, gerando então os pacotes modificados. A
|
|
claudinei@529
|
58 execução do comando 'tazbb cook-commit' irá gerar novamente os últimos
|
|
claudinei@529
|
59 pacotes modificados. Para gerar novamente todos os pacotes marcados como
|
|
claudinei@529
|
60 'missing', 'modified' ou 'unbuilt' deve-se executar o comando 'tazbb cook-all'.
|
|
claudinei@529
|
61 </p>
|
|
claudinei@529
|
62 <p>
|
|
claudinei@529
|
63 A geração de relatórios procura por todas as receitas (receipts) contidas no wok
|
|
claudinei@529
|
64 e verifica se um pacote foi gerado, se não o pacote é inserido à lista de
|
|
claudinei@529
|
65 compilação. Para os pacotes existentes são comparadas as datas dos arquivos
|
|
claudinei@529
|
66 do repositório (o arquivo 'receipt', o diretório 'stuff', por exemplo)
|
|
claudinei@529
|
67 com as datas contidas no arquivo do pacote no formato 'pacote.tazpkg',
|
|
claudinei@529
|
68 se houver alguma diferença o pacote também é inserido na lista de
|
|
claudinei@529
|
69 compilação.
|
|
claudinei@529
|
70 </p>
|
|
claudinei@529
|
71 <p>
|
|
claudinei@529
|
72 O tazbb também verifica o wok contido no ambiente chroot e checa se o
|
|
claudinei@529
|
73 pacote já foi compilado (procura pela existência de um diretório 'taz/').
|
|
claudinei@529
|
74 Caso o pacote não tenha sido compilado, é gerado um log e o pacote é adicionado
|
|
claudinei@529
|
75 à lista de compilação. Todos os pacotes são compilados por intermédio de
|
|
claudinei@529
|
76 um script, os logs de compilação são armazenados em $LOG_DIR e um link
|
|
claudinei@529
|
77 é criado para ser inserido na interface web do tazbb, de modo a permitir
|
|
claudinei@529
|
78 que os desenvolvedores verifiquem o processo de compilação e corrijam
|
|
claudinei@529
|
79 possíveis bugs.
|
|
claudinei@529
|
80 </p>
|
|
claudinei@529
|
81 <p>
|
|
claudinei@529
|
82 Quando executado com a opção 'cook' o tazbb remove pacotes antigo e/ou
|
|
claudinei@529
|
83 corrompidos e reconstroi todas as listas de pacotes (por meio do comando
|
|
claudinei@529
|
84 'tazwok genlist --text'). Para funcionar corretamente, tanto o tazwok
|
|
claudinei@529
|
85 quanto o tazbb devem ter seus caminhos (path) configurados igualmente.
|
|
claudinei@529
|
86 O arquivo de configuração do tazbb encontra-se em
|
|
claudinei@529
|
87 <code>/etc/slitaz/tazbb.conf</code>
|
|
claudinei@529
|
88 </p>
|
|
claudinei@529
|
89
|
|
claudinei@529
|
90 <a name="cmds"></a>
|
|
claudinei@529
|
91 <h3>Comandos</h3>
|
|
claudinei@529
|
92 <p>
|
|
claudinei@529
|
93 O Tazbb pode ser instalado em sua máquina e executado pela linha de
|
|
claudinei@529
|
94 comando - 'tazbb usage' retorna uma lista de funções disponíveis. Pode-se
|
|
claudinei@529
|
95 executar o programa de modo a obter diversas informações com a opção
|
|
claudinei@529
|
96 '--verbose'.
|
|
claudinei@529
|
97 </p>
|
|
claudinei@529
|
98
|
|
claudinei@529
|
99 <a name="woks"></a>
|
|
claudinei@529
|
100 <h3>Repositório Hg e Wok em modo chroot</h3>
|
|
claudinei@529
|
101 <p>
|
|
claudinei@529
|
102 O Tazbb utiliza 2 woks: um wok do repositório mercurial e um wok para a
|
|
claudinei@529
|
103 compilação de pacotes em um ambiente chroot. A cada vez que o tazbb é
|
|
claudinei@529
|
104 executado os arquivos do wok contido no repositório são atualizados e
|
|
claudinei@529
|
105 copiados para o wok de compilação, o que possibilita manter o wok
|
|
claudinei@529
|
106 principal (do repositório) limpo e permite a modificação manual das
|
|
claudinei@529
|
107 receitas (arquivos nomeados 'receipts'). Se configurado corretamente, o
|
|
claudinei@529
|
108 comando 'tazdev update-wok' atualiza o wok do repositório, copiando os
|
|
claudinei@529
|
109 arquivos necessários para tal atualização.
|
|
claudinei@529
|
110 </p>
|
|
claudinei@529
|
111
|
|
claudinei@529
|
112 <a name="log"></a>
|
|
claudinei@529
|
113 <h3>Arquivos de Log</h3>
|
|
claudinei@529
|
114 <p>
|
|
claudinei@529
|
115 O Tazbb utiliza as ferramentas existentes no sistema SliTaz, como o
|
|
claudinei@529
|
116 tazwok para compilar pacotes, porém gera arquivos de log e possui sua
|
|
claudinei@529
|
117 própria base de dados contida num arquivo de texto. Estes arquivos podem
|
|
claudinei@529
|
118 ser consultados pela interface web e são encontrados em:
|
|
claudinei@529
|
119 <code>/var/log/tazbb</code>
|
|
claudinei@529
|
120 </p>
|
|
claudinei@529
|
121
|
|
claudinei@529
|
122 <a name="web"></a>
|
|
claudinei@529
|
123 <h3>Interface Web</h3>
|
|
claudinei@529
|
124 <p>
|
|
claudinei@529
|
125 O Tazbb mantem logs de todas suas atividades em arquivos de log e num
|
|
claudinei@529
|
126 arquivo que tem por função listar pacotes a serem compilados (cooklist).
|
|
claudinei@529
|
127 Estes arquivos podem ser consultados por intermédio de uma interface web,
|
|
claudinei@529
|
128 permitindo aos desenvolvedores uma visão geral sobre os resultados das
|
|
claudinei@529
|
129 últimas compilações. Esta interface é construida com PHP, CSS e suas imagens
|
|
claudinei@529
|
130 são instaladas em <code>/var/lib/tazbb/web</code>.
|
|
claudinei@529
|
131 A instalação do pacote cria um link simbólico em <code>/var/www/vhosts</code>,
|
|
claudinei@529
|
132 provendo fácil acesso aos arquivos de log por intermédio de um host
|
|
claudinei@529
|
133 virtual na máquina local, que podem ser acessados pelo endereço:
|
|
claudinei@529
|
134 <code>http://localhost/vhosts/bb</code>.
|
|
claudinei@529
|
135 </p>
|
|
claudinei@529
|
136
|
|
claudinei@529
|
137 <a name="hg-hook"></a>
|
|
claudinei@529
|
138 <h3>Hg hook</h3>
|
|
claudinei@529
|
139 <p>
|
|
claudinei@529
|
140 O Mercurial possui um mecanismo poderoso que executa tarefas automaticamente
|
|
claudinei@529
|
141 em resposta a eventos que ocorrem em um repositórios. Estas tarefas
|
|
claudinei@529
|
142 automáticas são chamadas de 'hooks'. Utiliza-se esse mecanismo para
|
|
claudinei@529
|
143 executar o tazbb a cada vez que um commit é feito no repositórios,
|
|
claudinei@529
|
144 bastando apenas adicionas um 'hook' no arquivo de configuração do
|
|
claudinei@529
|
145 repositório mercurial (o arquivo .hgrc). Exemplo:
|
|
claudinei@529
|
146 </p>
|
|
claudinei@529
|
147 <pre class="script">
|
|
claudinei@529
|
148 [hooks]
|
|
claudinei@529
|
149 commit = tazbb cook-commit
|
|
claudinei@529
|
150 </pre>
|
|
claudinei@529
|
151
|
|
claudinei@529
|
152 <a name="cron"></a>
|
|
claudinei@529
|
153 <h3>Cron Job</h3>
|
|
claudinei@529
|
154 <p>
|
|
claudinei@529
|
155 O Tazbb também pode ser executado por intermédio de um cron job, compilando
|
|
claudinei@529
|
156 os pacotes adicionados ou modificados no repositórios em horários pré
|
|
claudinei@529
|
157 determinados. Pode-se também atualizar o relatório gerado pelo tazbb
|
|
claudinei@529
|
158 ou compilar todos os pacotes contidos no wok. Deve-se tomar o cuidado
|
|
claudinei@529
|
159 de deixar um bom espaço de tempo entre as execuções do tazbb, visto que
|
|
claudinei@529
|
160 se uma compilação ainda não tiver terminada ou se o tazbb for executado
|
|
claudinei@529
|
161 manualmente e aí for rodado um cron job, o comando será terminado pois
|
|
claudinei@529
|
162 o arquivo /var/lock será travado. Exemplo de um cron job que executa
|
|
claudinei@529
|
163 'tazbb cook commit' a cada duas horas e que compila todos os pacotes do
|
|
claudinei@529
|
164 repositório todos os dias à noite:
|
|
claudinei@529
|
165 </p>
|
|
claudinei@529
|
166 <pre class="script">
|
|
claudinei@529
|
167 */2 * * * * /usr/bin/tazbb cook-commit
|
|
claudinei@529
|
168 03 02 * * * /usr/bin/tazbb cook-all
|
|
claudinei@529
|
169 </pre>
|
|
claudinei@529
|
170
|
|
claudinei@529
|
171 <a name="db"></a>
|
|
claudinei@529
|
172 <h3>Arquivos da base de dados</h3>
|
|
claudinei@529
|
173 <ul>
|
|
claudinei@529
|
174 <li>blocked : Lista de pacotes bloqueados</li>
|
|
claudinei@529
|
175 <li>cooklist : Lista de compilação atual ou da próxima compilação</li>
|
|
claudinei@529
|
176 <li>corrupted : Lista de pacotes corrompidos</li>
|
|
claudinei@529
|
177 <li>packaged : Todos os pacotes contidos no wok de compilação</li>
|
|
claudinei@529
|
178 <li>removed : Últimos pacotes removidos</li>
|
|
claudinei@529
|
179 <li>report : Último relatório gerado por check_{wok,commit}</li>
|
|
claudinei@529
|
180 <li>running : Tarefas rodando atualmente</li>
|
|
claudinei@529
|
181 <li>summary : Último resumo gerado para a interface web</li>
|
|
claudinei@529
|
182 <li>unbuilt : Lista de pacotes não compilados</li>
|
|
claudinei@529
|
183 </ul>
|
|
claudinei@529
|
184
|
|
claudinei@529
|
185 <!-- End of content -->
|
|
claudinei@529
|
186 </div>
|
|
claudinei@529
|
187
|
|
claudinei@529
|
188 <!-- Footer. -->
|
|
claudinei@529
|
189 <div id="footer">
|
|
claudinei@529
|
190 <div class="footer-right"></div>
|
|
claudinei@529
|
191 <a href="#top">Topo da Página</a> |
|
|
claudinei@529
|
192 <a href="index.html">Conteúdo</a>
|
|
claudinei@529
|
193 </div>
|
|
claudinei@529
|
194
|
|
claudinei@529
|
195 <div id="copy">
|
|
claudinei@529
|
196 Copyright © 2009 <a href="http://www.slitaz.org/en/">SliTaz</a> -
|
|
claudinei@529
|
197 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
|
|
claudinei@529
|
198 Documentation is under
|
|
claudinei@529
|
199 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
|
|
claudinei@529
|
200 and code is <a href="http://validator.w3.org/">valid xHTML 1.0</a>.
|
|
claudinei@529
|
201 </div>
|
|
claudinei@529
|
202
|
|
claudinei@529
|
203 </body>
|
|
claudinei@529
|
204 </html>
|