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