rev |
line source |
al@598
|
1 <!DOCTYPE html>
|
al@598
|
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="pt">
|
claudinei@534
|
3 <head>
|
al@598
|
4 <meta charset="utf-8" />
|
claudinei@534
|
5 <title>Documentação do Cookutils</title>
|
al@598
|
6 <link rel="stylesheet" type="text/css" href="../slitaz-doc.css" />
|
al@598
|
7 <script type="text/javascript" src="../slitaz-doc.js"></script>
|
claudinei@534
|
8 </head>
|
claudinei@534
|
9 <body>
|
al@598
|
10
|
al@598
|
11 <header>
|
claudinei@534
|
12 <h1>Documentação do Cookutils</h1>
|
al@598
|
13 </header>
|
claudinei@534
|
14
|
claudinei@534
|
15 <!-- Start content -->
|
claudinei@534
|
16 <div id="content">
|
claudinei@534
|
17
|
claudinei@534
|
18 <h2>SliTaz Cook & Cooker</h2>
|
claudinei@534
|
19
|
claudinei@534
|
20 <p>
|
claudinei@534
|
21 O Cookutils fornece ferramentas e utilitários que ajudam na construção de
|
claudinei@534
|
22 pacotes para o SliTaz. Estas ferramentas são fáceis de aprender e utilizar,
|
claudinei@534
|
23 rápidas e leves. Você será capaz de criar pacotes para a distribuição em
|
claudinei@534
|
24 apenas alguns comandos. O cookutils fornece os comandos 'cook' e
|
claudinei@534
|
25 <a href="#cooker">Cooker</a>.
|
claudinei@534
|
26 </p>
|
claudinei@534
|
27 <p>
|
claudinei@534
|
28 O comando 'cook' permite a compilação e criação de pacotes, fornecendo um
|
claudinei@534
|
29 arquivo de log e checando a qualidade do pacote e do arquivo receipt. O
|
claudinei@534
|
30 Comando 'cooker' é um robô de compilação que fornece automação para a
|
claudinei@534
|
31 compilação, podendo ser usado como interface para o comando 'cook' na
|
claudinei@534
|
32 medida em que possui uma interface web/CGI que fornece os logs de criação
|
claudinei@534
|
33 de pacotes de forma simples de compreender. Os dois comandos utilizam
|
claudinei@534
|
34 do mesmo wok e arquivos de dados, assim como as informações de pacotes
|
claudinei@534
|
35 <a href="#blocked">bloqueados</a> e quebrados, assim como qualquer outra
|
claudinei@534
|
36 atividade necessária na criação de pacotes.
|
claudinei@534
|
37 </p>
|
claudinei@534
|
38 <p>
|
claudinei@534
|
39 Para informações técnicas, como estilo de código, por favor consultar o
|
claudinei@534
|
40 arquivo README encontrado nos fontes ou em /usr/share/doc/cookutils.
|
claudinei@534
|
41 </p>
|
claudinei@534
|
42
|
claudinei@534
|
43 <h3>Utilização do comando Cook</h3>
|
claudinei@534
|
44 <p>
|
claudinei@534
|
45 O comando 'cook' fornece uma pequena ajuda pode ser mostrada com a opção
|
claudinei@534
|
46 'usage'. Também possui algumas opções que executam tarefas especiais nos
|
claudinei@534
|
47 pacotes antes ou depois da compilação. Para obter ajuda:
|
claudinei@534
|
48 </p>
|
claudinei@534
|
49 <pre>
|
claudinei@534
|
50 # cook usage
|
claudinei@534
|
51 </pre>
|
claudinei@534
|
52
|
claudinei@534
|
53 <h3>Howto</h3>
|
claudinei@534
|
54 <p>
|
claudinei@534
|
55 A primeira coisa que você deve ter antes de compilar pacotes é configurar
|
claudinei@534
|
56 seu ambiente. As duas formas recomandadas de de fazer isto são: compilar
|
claudinei@534
|
57 pacotes num servidor de compilação ou compilar num ambiente chroot. No caso
|
claudinei@534
|
58 de utilizar um ambiente chroot, pode-se instalar e usar o Tazdev para
|
claudinei@534
|
59 criá-lo e utilizá-lo:
|
claudinei@534
|
60 </p>
|
claudinei@534
|
61 <pre>
|
claudinei@534
|
62 # tazdev gen-chroot && tazdev chroot
|
claudinei@534
|
63 </pre>
|
claudinei@534
|
64 <p>
|
claudinei@534
|
65 Por padrão o Tazdev cria um ambiente chroot em /home/slitaz/cooking/chroot
|
claudinei@534
|
66 mas pode-se configurar outro caminho como argumento do comando. A
|
claudinei@534
|
67 localização do ambiente chroot não é importante, pois quando se entra nele
|
claudinei@534
|
68 os caminhos padrão serão utilizados, como /home/slitaz/wok para o wok ou
|
claudinei@534
|
69 /home/slitaz/log para os logs do 'cook'. Para mostrar a ajuda do tazdev:
|
claudinei@534
|
70 tazdev usage.
|
claudinei@534
|
71 </p>
|
claudinei@534
|
72 <p>
|
claudinei@534
|
73 Quando se usa o ambiente chroot há dois diretórios especiais montados
|
claudinei@534
|
74 com a opção 'bind': src e packages. Os fontes para todos os pacotes são
|
claudinei@534
|
75 salvos por padrão em /home/slitaz/src, que é montado no chroot para sua
|
claudinei@534
|
76 utilização pelos utilitários. Este método permite compartilhar os fontes
|
claudinei@534
|
77 entre vários ambiente chroot, como um para a versão 'cooking' e outro para
|
claudinei@534
|
78 a estável. O caminho padrão para o diretório de pacotes é:
|
claudinei@534
|
79 /home/slitaz/[versão]/packages. Assim, os pacotes ficam fora do chroot e
|
claudinei@534
|
80 são protegidos caso o ambiente chroot seja removido por algum erro.
|
claudinei@534
|
81 </p>
|
claudinei@534
|
82
|
claudinei@534
|
83 <h3>Primeiros passos</h3>
|
claudinei@534
|
84 <p>
|
claudinei@534
|
85 Para começar os trabalhos de compilação, deve-se preparar o ambiente para
|
claudinei@534
|
86 o comando 'cook'. Ele se utiliza do arquivo de configuração cook.conf,
|
claudinei@534
|
87 onde podem ser informados caminhos alternativos para diretórios e
|
claudinei@534
|
88 arquivos, caso seja necessário. A opção 'setup' cria alguns diretórios e
|
claudinei@534
|
89 arquivos que guardam as informações de atividade e erro. Os arquivos
|
claudinei@534
|
90 criados são em texto puro, podendo ser editados por qualquer editor de
|
claudinei@534
|
91 texto. Para preparar o ambiente:
|
claudinei@534
|
92 </p>
|
claudinei@534
|
93 <pre>
|
claudinei@534
|
94 # cook setup
|
claudinei@534
|
95 </pre>
|
claudinei@534
|
96 <p>
|
claudinei@534
|
97 O comando 'setup' possui a opção --wok que permite clonar o wok do SliTaz
|
claudinei@534
|
98 durante a configuração do ambiente para o 'cook'. Mesmo não sendo um
|
claudinei@534
|
99 desenvolvedor oficial da distribuição, pode-se clonar o repositório e
|
claudinei@534
|
100 utilizar os pacotes existentes como exemplos para criar os seus próprios.
|
claudinei@534
|
101 Para configurar e clonar o wok cooking ou undigest:
|
claudinei@534
|
102 </p>
|
claudinei@534
|
103 <pre>
|
claudinei@534
|
104 # cook setup --wok
|
claudinei@534
|
105 # cook setup --undigest
|
claudinei@534
|
106 </pre>
|
claudinei@534
|
107
|
claudinei@534
|
108 <h3>Testando o ambiente</h3>
|
claudinei@534
|
109 <p>
|
claudinei@534
|
110 O 'cook' fornece um comando de teste que cria um pacote e o compila. Isto
|
claudinei@534
|
111 permite verificar se o ambiente funciona corretamente e cria um pacote
|
claudinei@534
|
112 de exemplo com seu respectivo arquivo receipt, chamado 'cooktest', que
|
claudinei@534
|
113 pode ser removido após o teste. Para criar o pacote de teste:
|
claudinei@534
|
114 </p>
|
claudinei@534
|
115 <pre>
|
claudinei@534
|
116 # cook test
|
claudinei@534
|
117 </pre>
|
claudinei@534
|
118
|
claudinei@534
|
119 <h3>Criando e compilando</h3>
|
claudinei@534
|
120 <p>
|
claudinei@534
|
121 Se o ambiente está configurado corretamente, pode-se iniciar a criação e
|
claudinei@534
|
122 compilação de pacotes para o SliTaz a partir do wok. Para criar um novo
|
claudinei@534
|
123 pacote com um arquivo receipt inicial (que também pode ser criado
|
claudinei@534
|
124 interativamente):
|
claudinei@534
|
125 </p>
|
claudinei@534
|
126 <pre>
|
claudinei@534
|
127 # cook new nome-do-pacote
|
claudinei@534
|
128 # cook new nome-do-pacote --interactive
|
claudinei@534
|
129 </pre>
|
claudinei@534
|
130 <p>
|
claudinei@534
|
131 Após a criação de um novo pacote, é necessária a edição do arquivo receipt
|
claudinei@534
|
132 com um editor de texto. Quando ele está pronto ou se já há um arquivo
|
claudinei@534
|
133 receipt existente, pode-se compilá-lo com o comando:
|
claudinei@534
|
134 </p>
|
claudinei@534
|
135 <pre>
|
claudinei@534
|
136 # cook nome-do-pacote
|
claudinei@534
|
137 </pre>
|
claudinei@534
|
138 <p>
|
claudinei@534
|
139 Se tudo correr bem, o pacote pronto será arquivado no diretório
|
claudinei@534
|
140 $SLITAZ/packages e os arquivos produzidos em $SLITAZ/wok/nome-do-pacote.
|
claudinei@534
|
141 </p>
|
claudinei@534
|
142
|
claudinei@534
|
143 <h3>Compilar e instalar</h3>
|
claudinei@534
|
144 <p>
|
claudinei@534
|
145 Para compilar e instalar o pacote num único comando:
|
claudinei@534
|
146 </p>
|
claudinei@534
|
147 <pre>
|
claudinei@534
|
148 # cook nome-do-pacote --install
|
claudinei@534
|
149 </pre>
|
claudinei@534
|
150
|
claudinei@534
|
151 <h3>Obter fontes</h3>
|
claudinei@534
|
152 <p>
|
claudinei@534
|
153 Caso se queira ou seja necessário somente o download dos arquivos fonte
|
claudinei@534
|
154 para um pacote, sem compilá-lo, pode-se utilizar a opção --getsrc:
|
claudinei@534
|
155 </p>
|
claudinei@534
|
156 <pre>
|
claudinei@534
|
157 # cook nome-do-pacote --getsrc
|
claudinei@534
|
158 </pre>
|
claudinei@534
|
159
|
claudinei@534
|
160 <h3>Limpando resultados da compilação</h3>
|
claudinei@534
|
161 <p>
|
claudinei@534
|
162 Após a compilação e empacotamento de algum programa, permanecem no wok
|
claudinei@534
|
163 vários arquivos resultantes do processo, o que ocupa espaço em disco.
|
claudinei@534
|
164 Para limpar um único pacote:
|
claudinei@534
|
165 </p>
|
claudinei@534
|
166 <pre>
|
claudinei@534
|
167 # cook nome-do-pacote --clean
|
claudinei@534
|
168 </pre>
|
claudinei@534
|
169 <p>
|
claudinei@534
|
170 Pode-se também limpar todo o wok de uma só vez, ou apenas remover os
|
claudinei@534
|
171 arquivos fonte:
|
claudinei@534
|
172 </p>
|
claudinei@534
|
173 <pre>
|
claudinei@534
|
174 # cook clean-wok
|
claudinei@534
|
175 # cook clean-src
|
claudinei@534
|
176 </pre>
|
claudinei@534
|
177
|
claudinei@534
|
178 <h3>Busca</h3>
|
claudinei@534
|
179 <p>
|
claudinei@534
|
180 O comando 'cook' oferece uma função de busca simples, que permite achar
|
claudinei@534
|
181 um determinado pacote no wok, utilizando 'grep' e com suporte a
|
claudinei@534
|
182 expressões regulares:
|
claudinei@534
|
183 </p>
|
claudinei@534
|
184 <pre>
|
claudinei@534
|
185 # cook search busybox
|
claudinei@534
|
186 </pre>
|
claudinei@534
|
187
|
claudinei@534
|
188 <h3>Lista de pacotes</h3>
|
claudinei@534
|
189 <p>
|
claudinei@534
|
190 Pode-se criar uma lista de pacotes no wok, assim como uma lista de pacotes
|
claudinei@534
|
191 para ser utilizada pelo Tazpkg. Isto permite criar um repositório local
|
claudinei@534
|
192 de pacote, assim como cria uma lista de pacotes oficial que é utilizada
|
claudinei@534
|
193 nos mirrors do SliTaz. Para listar os pacotes no wok atual:
|
claudinei@534
|
194 </p>
|
claudinei@534
|
195 <pre>
|
claudinei@534
|
196 $ cook list-wok
|
claudinei@534
|
197 </pre>
|
claudinei@534
|
198 <p>
|
claudinei@534
|
199 Ao se criar uma lista de pacotes, o 'cook' verifica se há um repositório
|
claudinei@534
|
200 de variantes (flavors) em /home/slitaz/flavors. Caso haja, ele irá
|
claudinei@534
|
201 compactar as variantes usando a lista de pacotes mais recente. Para
|
claudinei@534
|
202 criar uma lista de pacotes e uma para ser utilizada com as variantes:
|
claudinei@534
|
203 </p>
|
claudinei@534
|
204 <pre>
|
claudinei@534
|
205 # cook pkgdb
|
claudinei@534
|
206 </pre>
|
claudinei@534
|
207
|
al@598
|
208 <h3 id="cooker">O comando 'cooker'</h3>
|
claudinei@534
|
209 <p>
|
claudinei@534
|
210 O cooker é um robô de compilação, que tem por função checar por commits
|
claudinei@534
|
211 em um wok, criar uma listagem da ordem de compilação (cooklist) e compilar
|
claudinei@534
|
212 todos os pacotes. Também pode ser utilizado como interface para o comando
|
claudinei@534
|
213 'cook' pois ambos se utilizam dos mesmos arquivos de configuração. Outra
|
claudinei@534
|
214 função é compilar uma grande lista de pacotes de uma só vez, assim como
|
claudinei@534
|
215 todos os pacotes de uma determinada variante. O cooker possui uma interface
|
claudinei@534
|
216 Web/CGI que funciona por padrão em qualquer sistema SliTaz, pois este
|
claudinei@534
|
217 fornece suporte a CGI no servidor web do busybox (httpd).
|
claudinei@534
|
218 </p>
|
claudinei@534
|
219 <p>
|
claudinei@534
|
220 O cooker fornece um pequeno texto de ajuda:
|
claudinei@534
|
221 </p>
|
claudinei@534
|
222 <pre>
|
claudinei@534
|
223 # cooker usage
|
claudinei@534
|
224 # cooker -u
|
claudinei@534
|
225 </pre>
|
claudinei@534
|
226
|
claudinei@534
|
227 <h3>Configuração do Cooker</h3>
|
claudinei@534
|
228 <p>
|
claudinei@534
|
229 Assim como o 'cook', o 'cooker' precisa de um ambiente funcional para ser
|
claudinei@534
|
230 utilizado. A principal diferença é que o cooker necessita de dois
|
claudinei@534
|
231 diretórios wok para: um repositório mercurial limpo como referência e um
|
claudinei@534
|
232 wok de trabalho. Desta forma é simples comparar os dois woks para obter
|
claudinei@534
|
233 as modificações necessárias. Caso exista um ambiente de compilação, deve-se
|
claudinei@534
|
234 o wok existente antes de configurar o wok, pois poderá haver algum
|
claudinei@534
|
235 conflito. O comando 'setup' também instala alguns pacotes de
|
claudinei@534
|
236 desenvolvimento, que podem ser configurados no arquivo de configuração
|
claudinei@534
|
237 cook.conf e na variável SETUP_PKGS. Para configurar o ambiente:
|
claudinei@534
|
238 </p>
|
claudinei@534
|
239 <pre>
|
claudinei@534
|
240 # cooker setup
|
claudinei@534
|
241 </pre>
|
claudinei@534
|
242 <p>
|
claudinei@534
|
243 Se tudo correr bem, serão criados dois diretórios wok, os arquivos básicos
|
claudinei@534
|
244 de desenvolvimento serão instalados e todos os arquivos requeridos criados.
|
claudinei@534
|
245 O comportamento padrão é checar por commits, que pode ser testado com:
|
claudinei@534
|
246 </p>
|
claudinei@534
|
247 <pre>
|
claudinei@534
|
248 # cooker
|
claudinei@534
|
249 </pre>
|
claudinei@534
|
250
|
claudinei@534
|
251 <h3>Compilando com o cooker</h3>
|
claudinei@534
|
252 <p>
|
claudinei@534
|
253 Há duas formas de utilizar o cooker: modificar o repositório mercurial
|
claudinei@534
|
254 wok limpo e executar o cooker sem argumentos ou compilar os pacotes
|
claudinei@534
|
255 manualmente. O cooker permite a compilação de um único pacote ou todos
|
claudinei@534
|
256 os pacotes de uma determinada categoria ou variante. Pode-se também tentar
|
claudinei@534
|
257 compilar todos os pacotes não compilados, mas deve-se ter ciência que esta
|
claudinei@534
|
258 ferramente não foi desenvolvida para suportar a compilação de centenas de
|
claudinei@534
|
259 pacotes de uma só vez.
|
claudinei@534
|
260 </p>
|
claudinei@534
|
261 <p>
|
claudinei@534
|
262 Para compilar um único pacote, a ferramente funciona mais ou menos como
|
claudinei@534
|
263 o comando 'cook nome-do-pacote', porém produz mais arquivos de log:
|
claudinei@534
|
264 </p>
|
claudinei@534
|
265 <pre>
|
claudinei@534
|
266 # cooker pkg nome-do-pacote
|
claudinei@534
|
267 </pre>
|
claudinei@534
|
268 <p>
|
claudinei@534
|
269 Para compilar mais de um pacote de uma só vez, há várias opções. Pode-se
|
claudinei@534
|
270 compilar todos os pacotes de uma variante, pode-se utilizar uma lista
|
claudinei@534
|
271 com nomes de pacotes (cooklist), um por linha, e, ainda, compilar todos os
|
claudinei@534
|
272 pacotes de uma determinada categoria:
|
claudinei@534
|
273 </p>
|
claudinei@534
|
274 <pre>
|
claudinei@534
|
275 # cooker flavor [nome]
|
claudinei@534
|
276 # cooker list [/caminho/para/cooklist]
|
claudinei@534
|
277 # cooker cat [categoria]
|
claudinei@534
|
278 </pre>
|
claudinei@534
|
279 <p>
|
claudinei@534
|
280 O cooker permite recompilar uma determinada revisão do repositório
|
claudinei@534
|
281 mercurial. Isto é útil em ambiente de produção se o robô de compilação
|
claudinei@534
|
282 for interrompido enquanto compila um determinado commit, podendo-se então
|
claudinei@534
|
283 prosseguir com compilação manual dos pacotes:
|
claudinei@534
|
284 </p>
|
claudinei@534
|
285 <pre>
|
claudinei@534
|
286 # cooker rev 9496
|
claudinei@534
|
287 </pre>
|
claudinei@534
|
288
|
al@598
|
289 <h3 id="blocked">Pacotes bloqueados</h3>
|
claudinei@534
|
290 <p>
|
claudinei@534
|
291 O 'cook' e o 'cooker' utilizam uma lista de pacotes bloqueados, nos quais
|
claudinei@534
|
292 são indicados quais pacotes não compilar quando acontece algum commit ou
|
claudinei@534
|
293 ou quando uma lista de pacotes para compilação é utilizada. Isto é útil
|
claudinei@534
|
294 para um robô de compilação em ambiente de produção. Quando se bloqueia ou
|
claudinei@534
|
295 desbloqueia pacotes, pode-se deixar uma nota que será mostrada nas notas
|
claudinei@534
|
296 de compilação (cooknotes). Exemplos para bloquear algum pacote:
|
claudinei@534
|
297 </p>
|
claudinei@534
|
298 <pre>
|
claudinei@534
|
299 # cook nome-do-pacote --block
|
claudinei@534
|
300 # cooker block nome-do-pacote
|
claudinei@534
|
301 # cooker -n "Nota sobre o pacote bloqueado nome-do-pacote"
|
claudinei@534
|
302 </pre>
|
claudinei@534
|
303 <p>
|
claudinei@534
|
304 A lista de pacotes bloqueados é mostrada na interface web do cooker. Para
|
claudinei@534
|
305 desbloquear um pacote, pode-se utilizar o 'cooker' ou o 'cook':
|
claudinei@534
|
306 </p>
|
claudinei@534
|
307 <pre>
|
claudinei@534
|
308 # cook nome-do-pacote --unblock
|
claudinei@534
|
309 # cooker unblock nome-do-pacote
|
claudinei@534
|
310 </pre>
|
claudinei@534
|
311
|
claudinei@534
|
312 <h3>Interface Web/CGI do cooker</h3>
|
claudinei@534
|
313 <p>
|
claudinei@534
|
314 Para visualizar os logs de compilação, os resultados de atividades e
|
claudinei@534
|
315 erros do processo, pode-se utilizar a interface web do cooker, localizada
|
claudinei@534
|
316 por padrão no diretório /var/www/cooker. Caso não se utilize de um ambiente
|
claudinei@534
|
317 chroot e se o servidor web httpd do buxybox estiver sendo executado, a
|
claudinei@534
|
318 interface pode ser acessada no endereço:
|
claudinei@534
|
319 <a href="http://localhost/cooker/cooker.cgi">
|
claudinei@534
|
320 http://localhost/cooker/cooker.cgi</a>
|
claudinei@534
|
321 </p>
|
claudinei@534
|
322 <p>
|
claudinei@534
|
323 Caso se utilize de um ambiente chroot, deve-se instalar o 'cookutils' no
|
claudinei@534
|
324 sistema anfitrião (host) e modificar o caminho na variável SLITAZ. Uma
|
claudinei@534
|
325 forma padrão é possuir um chroot em:
|
claudinei@534
|
326 </p>
|
claudinei@534
|
327 <pre>
|
claudinei@534
|
328 /home/slitaz/cooking/chroot
|
claudinei@534
|
329 </pre>
|
claudinei@534
|
330 <p>
|
claudinei@534
|
331 Com o arquivo /etc/slitaz/cook.conf modificado da seguinte forma:
|
claudinei@534
|
332 </p>
|
claudinei@534
|
333 <pre>
|
claudinei@534
|
334 SLITAZ="/home/slitaz/cooking/chroot/home/slitaz"
|
claudinei@534
|
335 </pre>
|
claudinei@534
|
336 <p>
|
claudinei@534
|
337 Nota: não é obrigatória a instalação do 'cookutils' no host para usar a
|
claudinei@534
|
338 interface web. Caso o servidor web Lighttpd esteja instalado, pode-se
|
claudinei@534
|
339 copiar os arquivos 'cooker.cgi' e 'style.css' para, por exemplo, o
|
claudinei@534
|
340 diretório '~/Public' e utilizar um arquivo cook.conf modificado.
|
claudinei@534
|
341 A vantagem de instalar o 'cookutils' no host é obter atualizações
|
claudinei@534
|
342 regulares com o gerenciador de arquivos Tazpkg. Digamos que se tenha
|
claudinei@534
|
343 clonado ou baixado o cookutils:
|
claudinei@534
|
344 </p>
|
claudinei@534
|
345 <pre>
|
claudinei@534
|
346 $ cp -a cookutils/web ~/Public/cgi-bin/cooker
|
claudinei@534
|
347 $ cp -f cookutils/cook.conf ~/Public/cgi-bin/cooker
|
claudinei@534
|
348 </pre>
|
claudinei@534
|
349 <p>
|
claudinei@534
|
350 Neste caso, edita-se o arquivo de configuração
|
claudinei@534
|
351 '~/Public/cgi-bin/cooker/cook.conf' para configurar o caminho na variável
|
claudinei@534
|
352 SLITAZ para que tudo funcione.
|
claudinei@534
|
353 </p>
|
claudinei@534
|
354
|
claudinei@534
|
355 <h3>Notas de compilação (Cooknotes)</h3>
|
claudinei@534
|
356 <p>
|
claudinei@534
|
357 As notas de compilação permitem escrever algum texto sobre o processo de
|
claudinei@534
|
358 empacotamento, sendo útil para ambientes colaborativos. Esta função foi
|
claudinei@534
|
359 criada com o intuito de permitir aos desenvolvedores do SliTaz
|
claudinei@534
|
360 compartilharem notas entre si e outros desenvolvedores. O cooker pode
|
claudinei@534
|
361 bloquear a compilação de um pacote ou recompilar um pacote manualmente,
|
claudinei@534
|
362 por exemplo. Então, pode-se criar uma nota sobre o motivo do pacote ter
|
claudinei@534
|
363 sido bloqueado ou ter sido recompilado, para que outro desenvolvedor saiba
|
claudinei@534
|
364 o que está ocorrendo. As notas de compilação são mostradas na interface
|
claudinei@534
|
365 web e podem ser checadas a partir da linha de comando:
|
claudinei@534
|
366 </p>
|
claudinei@534
|
367 <pre>
|
claudinei@534
|
368 # cooker note "Pacote nome-do-pacote bloqueado devido à alta utilização de CPU."
|
claudinei@534
|
369 # cooker notes
|
claudinei@534
|
370 </pre>
|
claudinei@534
|
371
|
claudinei@534
|
372 <h3>Cooker como um robô de compilação</h3>
|
claudinei@534
|
373 <p>
|
claudinei@534
|
374 O 'cooker' foi criado para ser o robô de compilação do SliTaz, o que
|
claudinei@534
|
375 significa que ele monitora dois repositórios wok, atualiza o repositório
|
claudinei@534
|
376 mercurial, obtem as diferenças submetidas e compila todos os pacotes
|
claudinei@534
|
377 que foram adicionados ou modificados. A maneira mais segura e limpa de
|
claudinei@534
|
378 executar o cooker como um robô de compilação com agendador de atividades
|
claudinei@534
|
379 cron é utilizando um ambiente chroot, mas o utilitário também pode ser
|
claudinei@534
|
380 executado diretamente no sistema host, caso se queira.
|
claudinei@534
|
381 </p>
|
claudinei@534
|
382 <p>
|
claudinei@534
|
383 Para executar o cooker automaticamente, deve-se utilizar o agendador de
|
claudinei@534
|
384 tarefas cron, adicionando-se uma linha ao arquivo de configuração deste
|
claudinei@534
|
385 em /var/spool/cron/crontabs. Para configurar para ser executado a cada
|
claudinei@534
|
386 duas horas
|
claudinei@534
|
387 </p>
|
claudinei@534
|
388 <pre>
|
claudinei@534
|
389 * */2 * * * /usr/bin/cooker
|
claudinei@534
|
390 </pre>
|
claudinei@534
|
391
|
claudinei@534
|
392 <h3>Robô de compilação iniciado durante o boot</h3>
|
claudinei@534
|
393 <p>
|
claudinei@534
|
394 O ambiente do 'cooker' e a tarefa do cron podem ser executadas durante o
|
claudinei@534
|
395 boot. Deve-se ter instalado o utilitário 'cookutils-daemon' instalado no
|
claudinei@534
|
396 sistema host e utilizar a instalação padrão para que tudo funcione
|
claudinei@534
|
397 corretamente (diretório cooking em /home/slitaz/cooking). O script daemon
|
claudinei@534
|
398 montará qualquer sistema de arquivos virtual, caso necessário, assim como
|
claudinei@534
|
399 os diretórios de fontes e de pacotes. Os arquivos fonte são localizados em
|
claudinei@534
|
400 /home/slitaz/src e montados no ambiente chroot, para que se possa
|
claudinei@534
|
401 compartilha-los entre várias versões (estável, cooking, undigest). Para
|
claudinei@534
|
402 instalar o utilitário:
|
claudinei@534
|
403 </p>
|
claudinei@534
|
404 <pre>
|
claudinei@534
|
405 # tazpkg get-install cookutils-daemon
|
claudinei@534
|
406 </pre>
|
claudinei@534
|
407 <p>
|
claudinei@534
|
408 Para iniciar o daemon deve-se possuir uma tarefa do cron agendada para
|
claudinei@534
|
409 o usuário root no ambiente chroot. O script funcionará como os outros
|
claudinei@534
|
410 daemons do sistema, podendo ser controlado com:
|
claudinei@534
|
411 </p>
|
claudinei@534
|
412 <pre>
|
claudinei@534
|
413 # /etc/init.d/cooker [start|stop|restart]
|
claudinei@534
|
414 </pre>
|
claudinei@534
|
415
|
claudinei@534
|
416 <!-- End content -->
|
claudinei@534
|
417 </div>
|
claudinei@534
|
418
|
al@598
|
419 <footer>
|
pascal@627
|
420 Copyright © <span class="year"></span> <a href="http://www.slitaz.org/">SliTaz GNU/Linux</a>
|
al@598
|
421 </footer>
|
claudinei@534
|
422
|
claudinei@534
|
423 </body>
|
claudinei@534
|
424 </html>
|