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