cookutils rev 324

Move: cookutils.pt.html to cookutils.pt_BR.html
author Claudinei Pereira <claudinei@slitaz.org>
date Thu Mar 15 00:07:00 2012 -0300 (2012-03-15)
parents fd26a0872d97
children 39758ce8dc72
files doc/cookutils.pt.html doc/cookutils.pt_BR.html
line diff
     1.1 --- a/doc/cookutils.pt.html	Thu Mar 15 03:43:04 2012 +0100
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,426 +0,0 @@
     1.4 -<!DOCTYPE html>
     1.5 -<html xmlns="http://www.w3.org/1999/xhtml">
     1.6 -<head>
     1.7 -	<title>Cookutils Documentation</title>
     1.8 -	<meta charset="utf-8" />
     1.9 -	<link rel="stylesheet" type="text/css" href="style.css" />
    1.10 -</head>
    1.11 -<body>
    1.12 -	
    1.13 -<div id="header">
    1.14 -	<h1>Documentação do Cookutils</h1>
    1.15 -</div>
    1.16 -
    1.17 -<!-- Start content -->
    1.18 -<div id="content">
    1.19 -
    1.20 -<h2>SliTaz Cook &amp; Cooker</h2>
    1.21 -
    1.22 -<p>
    1.23 -    O Cookutils fornece ferramentas e utilitários que ajudam na construção de
    1.24 -    pacotes para o SliTaz. Estas ferramentas são fáceis de aprender e utilizar,
    1.25 -    rápidas e leves. Você será capaz de criar pacotes para a distribuição em
    1.26 -    apenas alguns comandos. O cookutils fornece os comandos 'cook' e 
    1.27 -	<a href="#cooker">Cooker</a>.
    1.28 -</p>
    1.29 -<p>
    1.30 -    O comando 'cook' permite a compilação e criação de pacotes, fornecendo um
    1.31 -    arquivo de log e checando a qualidade do pacote e do arquivo receipt. O
    1.32 -    Comando 'cooker' é um robô de compilação que fornece automação para a
    1.33 -    compilação, podendo ser usado como interface para o comando 'cook' na 
    1.34 -    medida em que possui uma interface web/CGI que fornece os logs de criação
    1.35 -    de pacotes de forma simples de compreender. Os dois comandos utilizam
    1.36 -    do mesmo wok e arquivos de dados, assim como as informações de pacotes
    1.37 -    <a href="#blocked">bloqueados</a> e quebrados, assim como qualquer outra
    1.38 -    atividade necessária na criação de pacotes.
    1.39 -</p>
    1.40 -<p>
    1.41 -    Para informações técnicas, como estilo de código, por favor consultar o
    1.42 -    arquivo README encontrado nos fontes ou em /usr/share/doc/cookutils.
    1.43 -</p>
    1.44 -
    1.45 -<h3>Utilização do comando Cook</h3>
    1.46 -<p>
    1.47 -    O comando 'cook' fornece uma pequena ajuda pode ser mostrada com a opção
    1.48 -    'usage'. Também possui algumas opções que executam tarefas especiais nos
    1.49 -    pacotes antes ou depois da compilação. Para obter ajuda:
    1.50 -</p>
    1.51 -<pre>
    1.52 -# cook usage
    1.53 -</pre>
    1.54 -
    1.55 -<h3>Howto</h3>
    1.56 -<p>
    1.57 -    A primeira coisa que você deve ter antes de compilar pacotes é configurar
    1.58 -    seu ambiente. As duas formas recomandadas de de fazer isto são: compilar
    1.59 -    pacotes num servidor de compilação ou compilar num ambiente chroot. No caso
    1.60 -    de utilizar um ambiente chroot, pode-se instalar e usar o Tazdev para
    1.61 -    criá-lo e utilizá-lo:
    1.62 -</p>
    1.63 -<pre>
    1.64 -# tazdev gen-chroot &amp;&amp; tazdev chroot
    1.65 -</pre>
    1.66 -<p>
    1.67 -    Por padrão o Tazdev cria um ambiente chroot em /home/slitaz/cooking/chroot
    1.68 -    mas pode-se configurar outro caminho como argumento do comando. A 
    1.69 -    localização do ambiente chroot não é importante, pois quando se entra nele
    1.70 -    os caminhos padrão serão utilizados, como /home/slitaz/wok para o wok ou
    1.71 -    /home/slitaz/log para os logs do 'cook'. Para mostrar a ajuda do tazdev:
    1.72 -	tazdev usage.
    1.73 -</p>
    1.74 -<p>
    1.75 -    Quando se usa o ambiente chroot há dois diretórios especiais montados
    1.76 -    com a opção 'bind': src e packages. Os fontes para todos os pacotes são
    1.77 -    salvos por padrão em /home/slitaz/src, que é montado no chroot para sua
    1.78 -    utilização pelos utilitários. Este método permite compartilhar os fontes
    1.79 -    entre vários ambiente chroot, como um para a versão 'cooking' e outro para
    1.80 -    a estável. O caminho padrão para o diretório de pacotes é:
    1.81 -    /home/slitaz/[versão]/packages. Assim, os pacotes ficam fora do chroot e
    1.82 -    são protegidos caso o ambiente chroot seja removido por algum erro.
    1.83 -</p>
    1.84 -
    1.85 -<h3>Primeiros passos</h3>
    1.86 -<p>
    1.87 -    Para começar os trabalhos de compilação, deve-se preparar o ambiente para
    1.88 -    o comando 'cook'. Ele se utiliza do arquivo de configuração cook.conf,
    1.89 -    onde podem ser informados caminhos alternativos para diretórios e
    1.90 -    arquivos, caso seja necessário. A opção 'setup' cria alguns diretórios e
    1.91 -    arquivos que guardam as informações de atividade e erro. Os arquivos
    1.92 -    criados são em texto puro, podendo ser editados por qualquer editor de 
    1.93 -    texto. Para preparar o ambiente:
    1.94 -</p>
    1.95 -<pre>
    1.96 -# cook setup
    1.97 -</pre>
    1.98 -<p>
    1.99 -    O comando 'setup' possui a opção --wok que permite clonar o wok do SliTaz
   1.100 -    durante a configuração do ambiente para o 'cook'. Mesmo não sendo um 
   1.101 -    desenvolvedor oficial da distribuição, pode-se clonar o repositório e
   1.102 -    utilizar os pacotes existentes como exemplos para criar os seus próprios.
   1.103 -    Para configurar e clonar o wok cooking ou undigest:
   1.104 -</p>
   1.105 -<pre>
   1.106 -# cook setup --wok
   1.107 -# cook setup --undigest
   1.108 -</pre>
   1.109 -
   1.110 -<h3>Testando o ambiente</h3>
   1.111 -<p>
   1.112 -    O 'cook' fornece um comando de teste que cria um pacote e o compila. Isto
   1.113 -    permite verificar se o ambiente funciona corretamente e cria um pacote
   1.114 -    de exemplo com seu respectivo arquivo receipt, chamado 'cooktest', que 
   1.115 -    pode ser removido após o teste. Para criar o pacote de teste:
   1.116 -</p>
   1.117 -<pre>
   1.118 -# cook test
   1.119 -</pre>
   1.120 -
   1.121 -<h3>Criando e compilando</h3>
   1.122 -<p>
   1.123 -    Se o ambiente está configurado corretamente, pode-se iniciar a criação e
   1.124 -    compilação de pacotes para o SliTaz a partir do wok. Para criar um novo
   1.125 -    pacote com um arquivo receipt inicial (que também pode ser criado
   1.126 -    interativamente):
   1.127 -</p>
   1.128 -<pre>
   1.129 -# cook new nome-do-pacote
   1.130 -# cook new nome-do-pacote --interactive
   1.131 -</pre>
   1.132 -<p>
   1.133 -    Após a criação de um novo pacote, é necessária a edição do arquivo receipt
   1.134 -    com um editor de texto. Quando ele está pronto ou se já há um arquivo
   1.135 -    receipt existente, pode-se compilá-lo com o comando:
   1.136 -</p>
   1.137 -<pre>
   1.138 -# cook nome-do-pacote 
   1.139 -</pre>
   1.140 -<p>
   1.141 -    Se tudo correr bem, o pacote pronto será arquivado no diretório
   1.142 -    $SLITAZ/packages e os arquivos produzidos em $SLITAZ/wok/nome-do-pacote.
   1.143 -</p>
   1.144 -
   1.145 -<h3>Compilar e instalar</h3>
   1.146 -<p>
   1.147 -    Para compilar e instalar o pacote num único comando:
   1.148 -</p>
   1.149 -<pre>
   1.150 -# cook nome-do-pacote --install
   1.151 -</pre>
   1.152 -
   1.153 -<h3>Obter fontes</h3>
   1.154 -<p>
   1.155 -    Caso se queira ou seja necessário somente o download dos arquivos fonte
   1.156 -    para um pacote, sem compilá-lo, pode-se utilizar a opção --getsrc:
   1.157 -</p>
   1.158 -<pre>
   1.159 -# cook nome-do-pacote --getsrc
   1.160 -</pre>
   1.161 -
   1.162 -<h3>Limpando resultados da compilação</h3>
   1.163 -<p>
   1.164 -    Após a compilação e empacotamento de algum programa, permanecem no wok
   1.165 -    vários arquivos resultantes do processo, o que ocupa espaço em disco.
   1.166 -    Para limpar um único pacote:
   1.167 -</p>
   1.168 -<pre>
   1.169 -# cook nome-do-pacote --clean
   1.170 -</pre>
   1.171 -<p>
   1.172 -    Pode-se também limpar todo o wok de uma só vez, ou apenas remover os
   1.173 -    arquivos fonte:
   1.174 -</p>
   1.175 -<pre>
   1.176 -# cook clean-wok
   1.177 -# cook clean-src
   1.178 -</pre>
   1.179 -
   1.180 -<h3>Busca</h3>
   1.181 -<p>
   1.182 -    O comando 'cook' oferece uma função de busca simples, que permite achar
   1.183 -    um determinado pacote no wok, utilizando 'grep' e com suporte a 
   1.184 -    expressões regulares:
   1.185 -</p>
   1.186 -<pre>
   1.187 -# cook search busybox
   1.188 -</pre>
   1.189 -
   1.190 -<h3>Lista de pacotes</h3>
   1.191 -<p>
   1.192 -    Pode-se criar uma lista de pacotes no wok, assim como uma lista de pacotes
   1.193 -    para ser utilizada pelo Tazpkg. Isto permite criar um repositório local
   1.194 -    de pacote, assim como cria uma lista de pacotes oficial que é utilizada
   1.195 -    nos mirrors do SliTaz. Para listar os pacotes no wok atual:
   1.196 -</p>
   1.197 -<pre>
   1.198 -$ cook list-wok
   1.199 -</pre>
   1.200 -<p>
   1.201 -    Ao se criar uma lista de pacotes, o 'cook' verifica se há um repositório
   1.202 -    de variantes (flavors) em /home/slitaz/flavors. Caso haja, ele irá 
   1.203 -    compactar as variantes usando a lista de pacotes mais recente. Para
   1.204 -    criar uma lista de pacotes e uma para ser utilizada com as variantes:
   1.205 -</p>
   1.206 -<pre>
   1.207 -# cook pkgdb
   1.208 -</pre>
   1.209 -
   1.210 -<a name="cooker"></a>
   1.211 -<h3>O comando 'cooker'</h3>
   1.212 -<p>
   1.213 -    O cooker é um robô de compilação, que tem por função checar por commits
   1.214 -    em um wok, criar uma listagem da ordem de compilação (cooklist) e compilar
   1.215 -    todos os pacotes. Também pode ser utilizado como interface para o comando
   1.216 -    'cook' pois ambos se utilizam dos mesmos arquivos de configuração. Outra
   1.217 -    função é compilar uma grande lista de pacotes de uma só vez, assim como
   1.218 -    todos os pacotes de uma determinada variante. O cooker possui uma interface
   1.219 -    Web/CGI que funciona por padrão em qualquer sistema SliTaz, pois este
   1.220 -    fornece suporte a CGI no servidor web do busybox (httpd). 
   1.221 -</p>
   1.222 -<p>
   1.223 -    O cooker fornece um pequeno texto de ajuda:
   1.224 -</p>
   1.225 -<pre>
   1.226 -# cooker usage
   1.227 -# cooker -u
   1.228 -</pre>
   1.229 -
   1.230 -<h3>Configuração do Cooker</h3>
   1.231 -<p>
   1.232 -    Assim como o 'cook', o 'cooker' precisa de um ambiente funcional para ser
   1.233 -    utilizado. A principal diferença é que o cooker necessita de dois
   1.234 -    diretórios wok para: um repositório mercurial limpo como referência e um
   1.235 -    wok de trabalho. Desta forma é simples comparar os dois woks para obter
   1.236 -    as modificações necessárias. Caso exista um ambiente de compilação, deve-se
   1.237 -    o wok existente antes de configurar o wok, pois poderá haver algum
   1.238 -    conflito. O comando 'setup' também instala alguns pacotes de
   1.239 -    desenvolvimento, que podem ser configurados no arquivo de configuração
   1.240 -    cook.conf e na variável SETUP_PKGS. Para configurar o ambiente:
   1.241 -</p>
   1.242 -<pre>
   1.243 -# cooker setup
   1.244 -</pre>
   1.245 -<p>
   1.246 -    Se tudo correr bem, serão criados dois diretórios wok, os arquivos básicos
   1.247 -    de desenvolvimento serão instalados e todos os arquivos requeridos criados.
   1.248 -    O comportamento padrão é checar por commits, que pode ser testado com:
   1.249 -</p>
   1.250 -<pre>
   1.251 -# cooker
   1.252 -</pre>
   1.253 -
   1.254 -<h3>Compilando com o cooker</h3>
   1.255 -<p>
   1.256 -    Há duas formas de utilizar o cooker: modificar o repositório mercurial
   1.257 -    wok limpo e executar o cooker sem argumentos ou compilar os pacotes
   1.258 -    manualmente. O cooker permite a compilação de um único pacote ou todos
   1.259 -    os pacotes de uma determinada categoria ou variante. Pode-se também tentar
   1.260 -    compilar todos os pacotes não compilados, mas deve-se ter ciência que esta
   1.261 -    ferramente não foi desenvolvida para suportar a compilação de centenas de
   1.262 -    pacotes de uma só vez.
   1.263 -</p>
   1.264 -<p>
   1.265 -    Para compilar um único pacote, a ferramente funciona mais ou menos como
   1.266 -    o comando 'cook nome-do-pacote', porém produz mais arquivos de log:
   1.267 -</p>
   1.268 -<pre>
   1.269 -# cooker pkg nome-do-pacote 
   1.270 -</pre>
   1.271 -<p>
   1.272 -    Para compilar mais de um pacote de uma só vez, há várias opções. Pode-se
   1.273 -    compilar todos os pacotes de uma variante, pode-se utilizar uma lista
   1.274 -    com nomes de pacotes (cooklist), um por linha, e, ainda, compilar todos os 
   1.275 -    pacotes de uma determinada categoria:
   1.276 -</p>
   1.277 -<pre>
   1.278 -# cooker flavor [nome]
   1.279 -# cooker list [/caminho/para/cooklist]
   1.280 -# cooker cat [categoria]
   1.281 -</pre>
   1.282 -<p>
   1.283 -    O cooker permite recompilar uma determinada revisão do repositório
   1.284 -    mercurial. Isto é útil em ambiente de produção se o robô de compilação
   1.285 -    for interrompido enquanto compila um determinado commit, podendo-se então
   1.286 -    prosseguir com compilação manual dos pacotes:
   1.287 -</p>
   1.288 -<pre>
   1.289 -# cooker rev 9496
   1.290 -</pre>
   1.291 -
   1.292 -<a name="blocked"></a>
   1.293 -<h3>Pacotes bloqueados</h3>
   1.294 -<p>
   1.295 -    O 'cook' e o 'cooker' utilizam uma lista de pacotes bloqueados, nos quais
   1.296 -    são indicados quais pacotes não compilar quando acontece algum commit ou
   1.297 -    ou quando uma lista de pacotes para compilação é utilizada. Isto é útil
   1.298 -    para um robô de compilação em ambiente de produção. Quando se bloqueia ou
   1.299 -    desbloqueia pacotes, pode-se deixar uma nota que será mostrada nas notas
   1.300 -    de compilação (cooknotes). Exemplos para bloquear algum pacote:
   1.301 -</p>
   1.302 -<pre>
   1.303 -# cook nome-do-pacote --block
   1.304 -# cooker block nome-do-pacote
   1.305 -# cooker -n "Nota sobre o pacote bloqueado nome-do-pacote"
   1.306 -</pre>
   1.307 -<p>
   1.308 -    A lista de pacotes bloqueados é mostrada na interface web do cooker. Para
   1.309 -    desbloquear um pacote, pode-se utilizar o 'cooker' ou o 'cook':
   1.310 -</p>
   1.311 -<pre>
   1.312 -# cook nome-do-pacote --unblock
   1.313 -# cooker unblock nome-do-pacote
   1.314 -</pre>
   1.315 -
   1.316 -<h3>Interface Web/CGI do cooker</h3>
   1.317 -<p>
   1.318 -    Para visualizar os logs de compilação, os resultados de atividades e 
   1.319 -    erros do processo, pode-se utilizar a interface web do cooker, localizada
   1.320 -    por padrão no diretório /var/www/cooker. Caso não se utilize de um ambiente
   1.321 -    chroot e se o servidor web httpd do buxybox estiver sendo executado, a
   1.322 -    interface pode ser acessada no endereço: 
   1.323 -    <a href="http://localhost/cooker/cooker.cgi">
   1.324 -		http://localhost/cooker/cooker.cgi</a> 
   1.325 -</p>
   1.326 -<p>
   1.327 -    Caso se utilize de um ambiente chroot, deve-se instalar o 'cookutils' no
   1.328 -    sistema anfitrião (host) e modificar o caminho na variável SLITAZ. Uma
   1.329 -    forma padrão é possuir um chroot em:
   1.330 -</p>
   1.331 -<pre>
   1.332 -/home/slitaz/cooking/chroot
   1.333 -</pre>
   1.334 -<p>
   1.335 -	Com o arquivo /etc/slitaz/cook.conf modificado da seguinte forma:
   1.336 -</p>
   1.337 -<pre>
   1.338 -SLITAZ="/home/slitaz/cooking/chroot/home/slitaz"
   1.339 -</pre>
   1.340 -<p>
   1.341 -    Nota: não é obrigatória a instalação do 'cookutils' no host para usar a
   1.342 -    interface web. Caso o servidor web Lighttpd esteja instalado, pode-se
   1.343 -    copiar os arquivos 'cooker.cgi' e 'style.css' para, por exemplo, o 
   1.344 -    diretório '~/Public' e utilizar um arquivo cook.conf modificado.
   1.345 -    A vantagem de instalar o 'cookutils' no host é obter atualizações 
   1.346 -    regulares com o gerenciador de arquivos Tazpkg. Digamos que se tenha
   1.347 -    clonado ou baixado o cookutils:
   1.348 -</p>
   1.349 -<pre>
   1.350 -$ cp -a cookutils/web ~/Public/cgi-bin/cooker
   1.351 -$ cp -f cookutils/cook.conf ~/Public/cgi-bin/cooker
   1.352 -</pre>
   1.353 -<p>
   1.354 -    Neste caso, edita-se o arquivo de configuração 
   1.355 -    '~/Public/cgi-bin/cooker/cook.conf' para configurar o caminho na variável
   1.356 -    SLITAZ para que tudo funcione.
   1.357 -</p>
   1.358 -
   1.359 -<h3>Notas de compilação (Cooknotes)</h3>
   1.360 -<p>
   1.361 -    As notas de compilação permitem escrever algum texto sobre o processo de
   1.362 -    empacotamento, sendo útil para ambientes colaborativos. Esta função foi
   1.363 -    criada com o intuito de permitir aos desenvolvedores do SliTaz
   1.364 -    compartilharem notas entre si e outros desenvolvedores. O cooker pode
   1.365 -    bloquear a compilação de um pacote ou recompilar um pacote manualmente,
   1.366 -    por exemplo. Então, pode-se criar uma nota sobre o motivo do pacote ter
   1.367 -    sido bloqueado ou ter sido recompilado, para que outro desenvolvedor saiba
   1.368 -    o que está ocorrendo. As notas de compilação são mostradas na interface
   1.369 -    web e podem ser checadas a partir da linha de comando:
   1.370 -</p>
   1.371 -<pre>
   1.372 -# cooker note "Pacote nome-do-pacote bloqueado devido à alta utilização de CPU."
   1.373 -# cooker notes
   1.374 -</pre>
   1.375 -
   1.376 -<h3>Cooker como um robô de compilação</h3>
   1.377 -<p>
   1.378 -    O 'cooker' foi criado para ser o robô de compilação do SliTaz, o que
   1.379 -    significa que ele monitora dois repositórios wok, atualiza o repositório
   1.380 -    mercurial, obtem as diferenças submetidas e compila todos os pacotes
   1.381 -    que foram adicionados ou modificados. A maneira mais segura e limpa de
   1.382 -    executar o cooker como um robô de compilação com agendador de atividades
   1.383 -    cron é utilizando um ambiente chroot, mas o utilitário também pode ser
   1.384 -    executado diretamente no sistema host, caso se queira.
   1.385 -</p>
   1.386 -<p>
   1.387 -    Para executar o cooker automaticamente, deve-se utilizar o agendador de
   1.388 -    tarefas cron, adicionando-se uma linha ao arquivo de configuração deste
   1.389 -    em /var/spool/cron/crontabs. Para configurar para ser executado a cada
   1.390 -    duas horas
   1.391 -</p>
   1.392 -<pre>
   1.393 -* */2 * * * /usr/bin/cooker
   1.394 -</pre>
   1.395 -
   1.396 -<h3>Robô de compilação iniciado durante o boot</h3>
   1.397 -<p>
   1.398 -    O ambiente do 'cooker' e a tarefa do cron podem ser executadas durante o
   1.399 -    boot. Deve-se ter instalado o utilitário 'cookutils-daemon' instalado no
   1.400 -    sistema host e utilizar a instalação padrão para que tudo funcione
   1.401 -    corretamente (diretório cooking em /home/slitaz/cooking). O script daemon
   1.402 -    montará qualquer sistema de arquivos virtual, caso necessário, assim como
   1.403 -    os diretórios de fontes e de pacotes. Os arquivos fonte são localizados em
   1.404 -    /home/slitaz/src e montados no ambiente chroot, para que se possa 
   1.405 -    compartilha-los entre várias versões (estável, cooking, undigest). Para
   1.406 -    instalar o utilitário:
   1.407 -</p>
   1.408 -<pre>
   1.409 -# tazpkg get-install cookutils-daemon
   1.410 -</pre>
   1.411 -<p>
   1.412 -    Para iniciar o daemon deve-se possuir uma tarefa do cron agendada para
   1.413 -    o usuário root no ambiente chroot. O script funcionará como os outros 
   1.414 -    daemons do sistema, podendo ser controlado com:
   1.415 -</p>
   1.416 -<pre>
   1.417 -# /etc/init.d/cooker [start|stop|restart]
   1.418 -</pre>
   1.419 -
   1.420 -<!-- End content -->
   1.421 -</div>
   1.422 -
   1.423 -<div id="footer">
   1.424 -	Copyright &copy; 2011 SliTaz contributors
   1.425 -</div>
   1.426 -
   1.427 -</body>
   1.428 -</html>
   1.429 -
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/doc/cookutils.pt_BR.html	Thu Mar 15 00:07:00 2012 -0300
     2.3 @@ -0,0 +1,426 @@
     2.4 +<!DOCTYPE html>
     2.5 +<html xmlns="http://www.w3.org/1999/xhtml">
     2.6 +<head>
     2.7 +	<title>Cookutils Documentation</title>
     2.8 +	<meta charset="utf-8" />
     2.9 +	<link rel="stylesheet" type="text/css" href="style.css" />
    2.10 +</head>
    2.11 +<body>
    2.12 +	
    2.13 +<div id="header">
    2.14 +	<h1>Documentação do Cookutils</h1>
    2.15 +</div>
    2.16 +
    2.17 +<!-- Start content -->
    2.18 +<div id="content">
    2.19 +
    2.20 +<h2>SliTaz Cook &amp; Cooker</h2>
    2.21 +
    2.22 +<p>
    2.23 +    O Cookutils fornece ferramentas e utilitários que ajudam na construção de
    2.24 +    pacotes para o SliTaz. Estas ferramentas são fáceis de aprender e utilizar,
    2.25 +    rápidas e leves. Você será capaz de criar pacotes para a distribuição em
    2.26 +    apenas alguns comandos. O cookutils fornece os comandos 'cook' e 
    2.27 +	<a href="#cooker">Cooker</a>.
    2.28 +</p>
    2.29 +<p>
    2.30 +    O comando 'cook' permite a compilação e criação de pacotes, fornecendo um
    2.31 +    arquivo de log e checando a qualidade do pacote e do arquivo receipt. O
    2.32 +    Comando 'cooker' é um robô de compilação que fornece automação para a
    2.33 +    compilação, podendo ser usado como interface para o comando 'cook' na 
    2.34 +    medida em que possui uma interface web/CGI que fornece os logs de criação
    2.35 +    de pacotes de forma simples de compreender. Os dois comandos utilizam
    2.36 +    do mesmo wok e arquivos de dados, assim como as informações de pacotes
    2.37 +    <a href="#blocked">bloqueados</a> e quebrados, assim como qualquer outra
    2.38 +    atividade necessária na criação de pacotes.
    2.39 +</p>
    2.40 +<p>
    2.41 +    Para informações técnicas, como estilo de código, por favor consultar o
    2.42 +    arquivo README encontrado nos fontes ou em /usr/share/doc/cookutils.
    2.43 +</p>
    2.44 +
    2.45 +<h3>Utilização do comando Cook</h3>
    2.46 +<p>
    2.47 +    O comando 'cook' fornece uma pequena ajuda pode ser mostrada com a opção
    2.48 +    'usage'. Também possui algumas opções que executam tarefas especiais nos
    2.49 +    pacotes antes ou depois da compilação. Para obter ajuda:
    2.50 +</p>
    2.51 +<pre>
    2.52 +# cook usage
    2.53 +</pre>
    2.54 +
    2.55 +<h3>Howto</h3>
    2.56 +<p>
    2.57 +    A primeira coisa que você deve ter antes de compilar pacotes é configurar
    2.58 +    seu ambiente. As duas formas recomandadas de de fazer isto são: compilar
    2.59 +    pacotes num servidor de compilação ou compilar num ambiente chroot. No caso
    2.60 +    de utilizar um ambiente chroot, pode-se instalar e usar o Tazdev para
    2.61 +    criá-lo e utilizá-lo:
    2.62 +</p>
    2.63 +<pre>
    2.64 +# tazdev gen-chroot &amp;&amp; tazdev chroot
    2.65 +</pre>
    2.66 +<p>
    2.67 +    Por padrão o Tazdev cria um ambiente chroot em /home/slitaz/cooking/chroot
    2.68 +    mas pode-se configurar outro caminho como argumento do comando. A 
    2.69 +    localização do ambiente chroot não é importante, pois quando se entra nele
    2.70 +    os caminhos padrão serão utilizados, como /home/slitaz/wok para o wok ou
    2.71 +    /home/slitaz/log para os logs do 'cook'. Para mostrar a ajuda do tazdev:
    2.72 +	tazdev usage.
    2.73 +</p>
    2.74 +<p>
    2.75 +    Quando se usa o ambiente chroot há dois diretórios especiais montados
    2.76 +    com a opção 'bind': src e packages. Os fontes para todos os pacotes são
    2.77 +    salvos por padrão em /home/slitaz/src, que é montado no chroot para sua
    2.78 +    utilização pelos utilitários. Este método permite compartilhar os fontes
    2.79 +    entre vários ambiente chroot, como um para a versão 'cooking' e outro para
    2.80 +    a estável. O caminho padrão para o diretório de pacotes é:
    2.81 +    /home/slitaz/[versão]/packages. Assim, os pacotes ficam fora do chroot e
    2.82 +    são protegidos caso o ambiente chroot seja removido por algum erro.
    2.83 +</p>
    2.84 +
    2.85 +<h3>Primeiros passos</h3>
    2.86 +<p>
    2.87 +    Para começar os trabalhos de compilação, deve-se preparar o ambiente para
    2.88 +    o comando 'cook'. Ele se utiliza do arquivo de configuração cook.conf,
    2.89 +    onde podem ser informados caminhos alternativos para diretórios e
    2.90 +    arquivos, caso seja necessário. A opção 'setup' cria alguns diretórios e
    2.91 +    arquivos que guardam as informações de atividade e erro. Os arquivos
    2.92 +    criados são em texto puro, podendo ser editados por qualquer editor de 
    2.93 +    texto. Para preparar o ambiente:
    2.94 +</p>
    2.95 +<pre>
    2.96 +# cook setup
    2.97 +</pre>
    2.98 +<p>
    2.99 +    O comando 'setup' possui a opção --wok que permite clonar o wok do SliTaz
   2.100 +    durante a configuração do ambiente para o 'cook'. Mesmo não sendo um 
   2.101 +    desenvolvedor oficial da distribuição, pode-se clonar o repositório e
   2.102 +    utilizar os pacotes existentes como exemplos para criar os seus próprios.
   2.103 +    Para configurar e clonar o wok cooking ou undigest:
   2.104 +</p>
   2.105 +<pre>
   2.106 +# cook setup --wok
   2.107 +# cook setup --undigest
   2.108 +</pre>
   2.109 +
   2.110 +<h3>Testando o ambiente</h3>
   2.111 +<p>
   2.112 +    O 'cook' fornece um comando de teste que cria um pacote e o compila. Isto
   2.113 +    permite verificar se o ambiente funciona corretamente e cria um pacote
   2.114 +    de exemplo com seu respectivo arquivo receipt, chamado 'cooktest', que 
   2.115 +    pode ser removido após o teste. Para criar o pacote de teste:
   2.116 +</p>
   2.117 +<pre>
   2.118 +# cook test
   2.119 +</pre>
   2.120 +
   2.121 +<h3>Criando e compilando</h3>
   2.122 +<p>
   2.123 +    Se o ambiente está configurado corretamente, pode-se iniciar a criação e
   2.124 +    compilação de pacotes para o SliTaz a partir do wok. Para criar um novo
   2.125 +    pacote com um arquivo receipt inicial (que também pode ser criado
   2.126 +    interativamente):
   2.127 +</p>
   2.128 +<pre>
   2.129 +# cook new nome-do-pacote
   2.130 +# cook new nome-do-pacote --interactive
   2.131 +</pre>
   2.132 +<p>
   2.133 +    Após a criação de um novo pacote, é necessária a edição do arquivo receipt
   2.134 +    com um editor de texto. Quando ele está pronto ou se já há um arquivo
   2.135 +    receipt existente, pode-se compilá-lo com o comando:
   2.136 +</p>
   2.137 +<pre>
   2.138 +# cook nome-do-pacote 
   2.139 +</pre>
   2.140 +<p>
   2.141 +    Se tudo correr bem, o pacote pronto será arquivado no diretório
   2.142 +    $SLITAZ/packages e os arquivos produzidos em $SLITAZ/wok/nome-do-pacote.
   2.143 +</p>
   2.144 +
   2.145 +<h3>Compilar e instalar</h3>
   2.146 +<p>
   2.147 +    Para compilar e instalar o pacote num único comando:
   2.148 +</p>
   2.149 +<pre>
   2.150 +# cook nome-do-pacote --install
   2.151 +</pre>
   2.152 +
   2.153 +<h3>Obter fontes</h3>
   2.154 +<p>
   2.155 +    Caso se queira ou seja necessário somente o download dos arquivos fonte
   2.156 +    para um pacote, sem compilá-lo, pode-se utilizar a opção --getsrc:
   2.157 +</p>
   2.158 +<pre>
   2.159 +# cook nome-do-pacote --getsrc
   2.160 +</pre>
   2.161 +
   2.162 +<h3>Limpando resultados da compilação</h3>
   2.163 +<p>
   2.164 +    Após a compilação e empacotamento de algum programa, permanecem no wok
   2.165 +    vários arquivos resultantes do processo, o que ocupa espaço em disco.
   2.166 +    Para limpar um único pacote:
   2.167 +</p>
   2.168 +<pre>
   2.169 +# cook nome-do-pacote --clean
   2.170 +</pre>
   2.171 +<p>
   2.172 +    Pode-se também limpar todo o wok de uma só vez, ou apenas remover os
   2.173 +    arquivos fonte:
   2.174 +</p>
   2.175 +<pre>
   2.176 +# cook clean-wok
   2.177 +# cook clean-src
   2.178 +</pre>
   2.179 +
   2.180 +<h3>Busca</h3>
   2.181 +<p>
   2.182 +    O comando 'cook' oferece uma função de busca simples, que permite achar
   2.183 +    um determinado pacote no wok, utilizando 'grep' e com suporte a 
   2.184 +    expressões regulares:
   2.185 +</p>
   2.186 +<pre>
   2.187 +# cook search busybox
   2.188 +</pre>
   2.189 +
   2.190 +<h3>Lista de pacotes</h3>
   2.191 +<p>
   2.192 +    Pode-se criar uma lista de pacotes no wok, assim como uma lista de pacotes
   2.193 +    para ser utilizada pelo Tazpkg. Isto permite criar um repositório local
   2.194 +    de pacote, assim como cria uma lista de pacotes oficial que é utilizada
   2.195 +    nos mirrors do SliTaz. Para listar os pacotes no wok atual:
   2.196 +</p>
   2.197 +<pre>
   2.198 +$ cook list-wok
   2.199 +</pre>
   2.200 +<p>
   2.201 +    Ao se criar uma lista de pacotes, o 'cook' verifica se há um repositório
   2.202 +    de variantes (flavors) em /home/slitaz/flavors. Caso haja, ele irá 
   2.203 +    compactar as variantes usando a lista de pacotes mais recente. Para
   2.204 +    criar uma lista de pacotes e uma para ser utilizada com as variantes:
   2.205 +</p>
   2.206 +<pre>
   2.207 +# cook pkgdb
   2.208 +</pre>
   2.209 +
   2.210 +<a name="cooker"></a>
   2.211 +<h3>O comando 'cooker'</h3>
   2.212 +<p>
   2.213 +    O cooker é um robô de compilação, que tem por função checar por commits
   2.214 +    em um wok, criar uma listagem da ordem de compilação (cooklist) e compilar
   2.215 +    todos os pacotes. Também pode ser utilizado como interface para o comando
   2.216 +    'cook' pois ambos se utilizam dos mesmos arquivos de configuração. Outra
   2.217 +    função é compilar uma grande lista de pacotes de uma só vez, assim como
   2.218 +    todos os pacotes de uma determinada variante. O cooker possui uma interface
   2.219 +    Web/CGI que funciona por padrão em qualquer sistema SliTaz, pois este
   2.220 +    fornece suporte a CGI no servidor web do busybox (httpd). 
   2.221 +</p>
   2.222 +<p>
   2.223 +    O cooker fornece um pequeno texto de ajuda:
   2.224 +</p>
   2.225 +<pre>
   2.226 +# cooker usage
   2.227 +# cooker -u
   2.228 +</pre>
   2.229 +
   2.230 +<h3>Configuração do Cooker</h3>
   2.231 +<p>
   2.232 +    Assim como o 'cook', o 'cooker' precisa de um ambiente funcional para ser
   2.233 +    utilizado. A principal diferença é que o cooker necessita de dois
   2.234 +    diretórios wok para: um repositório mercurial limpo como referência e um
   2.235 +    wok de trabalho. Desta forma é simples comparar os dois woks para obter
   2.236 +    as modificações necessárias. Caso exista um ambiente de compilação, deve-se
   2.237 +    o wok existente antes de configurar o wok, pois poderá haver algum
   2.238 +    conflito. O comando 'setup' também instala alguns pacotes de
   2.239 +    desenvolvimento, que podem ser configurados no arquivo de configuração
   2.240 +    cook.conf e na variável SETUP_PKGS. Para configurar o ambiente:
   2.241 +</p>
   2.242 +<pre>
   2.243 +# cooker setup
   2.244 +</pre>
   2.245 +<p>
   2.246 +    Se tudo correr bem, serão criados dois diretórios wok, os arquivos básicos
   2.247 +    de desenvolvimento serão instalados e todos os arquivos requeridos criados.
   2.248 +    O comportamento padrão é checar por commits, que pode ser testado com:
   2.249 +</p>
   2.250 +<pre>
   2.251 +# cooker
   2.252 +</pre>
   2.253 +
   2.254 +<h3>Compilando com o cooker</h3>
   2.255 +<p>
   2.256 +    Há duas formas de utilizar o cooker: modificar o repositório mercurial
   2.257 +    wok limpo e executar o cooker sem argumentos ou compilar os pacotes
   2.258 +    manualmente. O cooker permite a compilação de um único pacote ou todos
   2.259 +    os pacotes de uma determinada categoria ou variante. Pode-se também tentar
   2.260 +    compilar todos os pacotes não compilados, mas deve-se ter ciência que esta
   2.261 +    ferramente não foi desenvolvida para suportar a compilação de centenas de
   2.262 +    pacotes de uma só vez.
   2.263 +</p>
   2.264 +<p>
   2.265 +    Para compilar um único pacote, a ferramente funciona mais ou menos como
   2.266 +    o comando 'cook nome-do-pacote', porém produz mais arquivos de log:
   2.267 +</p>
   2.268 +<pre>
   2.269 +# cooker pkg nome-do-pacote 
   2.270 +</pre>
   2.271 +<p>
   2.272 +    Para compilar mais de um pacote de uma só vez, há várias opções. Pode-se
   2.273 +    compilar todos os pacotes de uma variante, pode-se utilizar uma lista
   2.274 +    com nomes de pacotes (cooklist), um por linha, e, ainda, compilar todos os 
   2.275 +    pacotes de uma determinada categoria:
   2.276 +</p>
   2.277 +<pre>
   2.278 +# cooker flavor [nome]
   2.279 +# cooker list [/caminho/para/cooklist]
   2.280 +# cooker cat [categoria]
   2.281 +</pre>
   2.282 +<p>
   2.283 +    O cooker permite recompilar uma determinada revisão do repositório
   2.284 +    mercurial. Isto é útil em ambiente de produção se o robô de compilação
   2.285 +    for interrompido enquanto compila um determinado commit, podendo-se então
   2.286 +    prosseguir com compilação manual dos pacotes:
   2.287 +</p>
   2.288 +<pre>
   2.289 +# cooker rev 9496
   2.290 +</pre>
   2.291 +
   2.292 +<a name="blocked"></a>
   2.293 +<h3>Pacotes bloqueados</h3>
   2.294 +<p>
   2.295 +    O 'cook' e o 'cooker' utilizam uma lista de pacotes bloqueados, nos quais
   2.296 +    são indicados quais pacotes não compilar quando acontece algum commit ou
   2.297 +    ou quando uma lista de pacotes para compilação é utilizada. Isto é útil
   2.298 +    para um robô de compilação em ambiente de produção. Quando se bloqueia ou
   2.299 +    desbloqueia pacotes, pode-se deixar uma nota que será mostrada nas notas
   2.300 +    de compilação (cooknotes). Exemplos para bloquear algum pacote:
   2.301 +</p>
   2.302 +<pre>
   2.303 +# cook nome-do-pacote --block
   2.304 +# cooker block nome-do-pacote
   2.305 +# cooker -n "Nota sobre o pacote bloqueado nome-do-pacote"
   2.306 +</pre>
   2.307 +<p>
   2.308 +    A lista de pacotes bloqueados é mostrada na interface web do cooker. Para
   2.309 +    desbloquear um pacote, pode-se utilizar o 'cooker' ou o 'cook':
   2.310 +</p>
   2.311 +<pre>
   2.312 +# cook nome-do-pacote --unblock
   2.313 +# cooker unblock nome-do-pacote
   2.314 +</pre>
   2.315 +
   2.316 +<h3>Interface Web/CGI do cooker</h3>
   2.317 +<p>
   2.318 +    Para visualizar os logs de compilação, os resultados de atividades e 
   2.319 +    erros do processo, pode-se utilizar a interface web do cooker, localizada
   2.320 +    por padrão no diretório /var/www/cooker. Caso não se utilize de um ambiente
   2.321 +    chroot e se o servidor web httpd do buxybox estiver sendo executado, a
   2.322 +    interface pode ser acessada no endereço: 
   2.323 +    <a href="http://localhost/cooker/cooker.cgi">
   2.324 +		http://localhost/cooker/cooker.cgi</a> 
   2.325 +</p>
   2.326 +<p>
   2.327 +    Caso se utilize de um ambiente chroot, deve-se instalar o 'cookutils' no
   2.328 +    sistema anfitrião (host) e modificar o caminho na variável SLITAZ. Uma
   2.329 +    forma padrão é possuir um chroot em:
   2.330 +</p>
   2.331 +<pre>
   2.332 +/home/slitaz/cooking/chroot
   2.333 +</pre>
   2.334 +<p>
   2.335 +	Com o arquivo /etc/slitaz/cook.conf modificado da seguinte forma:
   2.336 +</p>
   2.337 +<pre>
   2.338 +SLITAZ="/home/slitaz/cooking/chroot/home/slitaz"
   2.339 +</pre>
   2.340 +<p>
   2.341 +    Nota: não é obrigatória a instalação do 'cookutils' no host para usar a
   2.342 +    interface web. Caso o servidor web Lighttpd esteja instalado, pode-se
   2.343 +    copiar os arquivos 'cooker.cgi' e 'style.css' para, por exemplo, o 
   2.344 +    diretório '~/Public' e utilizar um arquivo cook.conf modificado.
   2.345 +    A vantagem de instalar o 'cookutils' no host é obter atualizações 
   2.346 +    regulares com o gerenciador de arquivos Tazpkg. Digamos que se tenha
   2.347 +    clonado ou baixado o cookutils:
   2.348 +</p>
   2.349 +<pre>
   2.350 +$ cp -a cookutils/web ~/Public/cgi-bin/cooker
   2.351 +$ cp -f cookutils/cook.conf ~/Public/cgi-bin/cooker
   2.352 +</pre>
   2.353 +<p>
   2.354 +    Neste caso, edita-se o arquivo de configuração 
   2.355 +    '~/Public/cgi-bin/cooker/cook.conf' para configurar o caminho na variável
   2.356 +    SLITAZ para que tudo funcione.
   2.357 +</p>
   2.358 +
   2.359 +<h3>Notas de compilação (Cooknotes)</h3>
   2.360 +<p>
   2.361 +    As notas de compilação permitem escrever algum texto sobre o processo de
   2.362 +    empacotamento, sendo útil para ambientes colaborativos. Esta função foi
   2.363 +    criada com o intuito de permitir aos desenvolvedores do SliTaz
   2.364 +    compartilharem notas entre si e outros desenvolvedores. O cooker pode
   2.365 +    bloquear a compilação de um pacote ou recompilar um pacote manualmente,
   2.366 +    por exemplo. Então, pode-se criar uma nota sobre o motivo do pacote ter
   2.367 +    sido bloqueado ou ter sido recompilado, para que outro desenvolvedor saiba
   2.368 +    o que está ocorrendo. As notas de compilação são mostradas na interface
   2.369 +    web e podem ser checadas a partir da linha de comando:
   2.370 +</p>
   2.371 +<pre>
   2.372 +# cooker note "Pacote nome-do-pacote bloqueado devido à alta utilização de CPU."
   2.373 +# cooker notes
   2.374 +</pre>
   2.375 +
   2.376 +<h3>Cooker como um robô de compilação</h3>
   2.377 +<p>
   2.378 +    O 'cooker' foi criado para ser o robô de compilação do SliTaz, o que
   2.379 +    significa que ele monitora dois repositórios wok, atualiza o repositório
   2.380 +    mercurial, obtem as diferenças submetidas e compila todos os pacotes
   2.381 +    que foram adicionados ou modificados. A maneira mais segura e limpa de
   2.382 +    executar o cooker como um robô de compilação com agendador de atividades
   2.383 +    cron é utilizando um ambiente chroot, mas o utilitário também pode ser
   2.384 +    executado diretamente no sistema host, caso se queira.
   2.385 +</p>
   2.386 +<p>
   2.387 +    Para executar o cooker automaticamente, deve-se utilizar o agendador de
   2.388 +    tarefas cron, adicionando-se uma linha ao arquivo de configuração deste
   2.389 +    em /var/spool/cron/crontabs. Para configurar para ser executado a cada
   2.390 +    duas horas
   2.391 +</p>
   2.392 +<pre>
   2.393 +* */2 * * * /usr/bin/cooker
   2.394 +</pre>
   2.395 +
   2.396 +<h3>Robô de compilação iniciado durante o boot</h3>
   2.397 +<p>
   2.398 +    O ambiente do 'cooker' e a tarefa do cron podem ser executadas durante o
   2.399 +    boot. Deve-se ter instalado o utilitário 'cookutils-daemon' instalado no
   2.400 +    sistema host e utilizar a instalação padrão para que tudo funcione
   2.401 +    corretamente (diretório cooking em /home/slitaz/cooking). O script daemon
   2.402 +    montará qualquer sistema de arquivos virtual, caso necessário, assim como
   2.403 +    os diretórios de fontes e de pacotes. Os arquivos fonte são localizados em
   2.404 +    /home/slitaz/src e montados no ambiente chroot, para que se possa 
   2.405 +    compartilha-los entre várias versões (estável, cooking, undigest). Para
   2.406 +    instalar o utilitário:
   2.407 +</p>
   2.408 +<pre>
   2.409 +# tazpkg get-install cookutils-daemon
   2.410 +</pre>
   2.411 +<p>
   2.412 +    Para iniciar o daemon deve-se possuir uma tarefa do cron agendada para
   2.413 +    o usuário root no ambiente chroot. O script funcionará como os outros 
   2.414 +    daemons do sistema, podendo ser controlado com:
   2.415 +</p>
   2.416 +<pre>
   2.417 +# /etc/init.d/cooker [start|stop|restart]
   2.418 +</pre>
   2.419 +
   2.420 +<!-- End content -->
   2.421 +</div>
   2.422 +
   2.423 +<div id="footer">
   2.424 +	Copyright &copy; 2011 SliTaz contributors
   2.425 +</div>
   2.426 +
   2.427 +</body>
   2.428 +</html>
   2.429 +