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