| rev |
line source |
|
paul@142
|
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
paul@142
|
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
paul@142
|
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt" lang="pt">
|
|
paul@142
|
4 <head>
|
|
paul@142
|
5 <title>Livro de Receitas do SliTaz - Receitas</title>
|
|
paul@142
|
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
|
|
paul@142
|
7 <meta name="description" content="slitaz portuguese cookbook" />
|
|
paul@142
|
8 <meta name="expires" content="never" />
|
|
paul@142
|
9 <meta name="modified" content="2008-07-16 21:45:00" />
|
|
paul@142
|
10 <meta name="publisher" content="www.slitaz.org" />
|
|
paul@142
|
11 <meta name="author" content="Christophe Lincoln"/>
|
|
paul@142
|
12 <link rel="shortcut icon" href="favicon.ico" />
|
|
paul@142
|
13 <link rel="stylesheet" type="text/css" href="book.css" />
|
|
paul@142
|
14 </head>
|
|
paul@142
|
15 <body bgcolor="#ffffff">
|
|
paul@142
|
16
|
|
paul@142
|
17 <!-- Header and quick navigation -->
|
|
paul@142
|
18 <div id="header">
|
|
paul@142
|
19 <div align="right" id="quicknav">
|
|
paul@142
|
20 <a name="top"></a>
|
|
claudinei@529
|
21 <a href="build-host.html">Build Host</a> |
|
|
paul@142
|
22 <a href="index.html">Conteúdo</a>
|
|
paul@142
|
23 </div>
|
|
paul@142
|
24 <h1><font color="#3E1220">SliTaz Cookbook (pt)</font></h1>
|
|
paul@142
|
25 </div>
|
|
paul@142
|
26
|
|
paul@142
|
27 <!-- Content. -->
|
|
paul@142
|
28 <div id="content">
|
|
paul@142
|
29 <div class="content-right"></div>
|
|
paul@142
|
30
|
|
paul@142
|
31
|
|
paul@142
|
32 <h2><font color="#df8f06">Receitas</font></h2>
|
|
paul@142
|
33
|
|
paul@142
|
34 <p>
|
|
paul@142
|
35 Este documento descreve as oportunidades oferecidas pela receita usada pelo
|
|
paul@142
|
36 Tazwok para compilar e gerar pacotes para o SliTaz e o Tazpkg por meio do
|
|
paul@142
|
37 <a href="wok-tools.html">wok e ferramentas</a>. A receita para um pacote é
|
|
paul@142
|
38 também usada pelo Tazpkg para instalar/desinstalar e prover informações sobre
|
|
paul@142
|
39 um pacote .tazpkg. Cada receita começa com um comentário em inglês:
|
|
paul@142
|
40 </p>
|
|
paul@142
|
41 <pre class="script">
|
|
paul@142
|
42 # SliTaz package receipt.
|
|
paul@142
|
43 </pre>
|
|
paul@142
|
44
|
|
paul@142
|
45 <h3>Variáveis</h3>
|
|
paul@142
|
46 <p>
|
|
paul@142
|
47 As 5 primeiras variáveis devem sempre estar presentes e definidas. Elas,
|
|
paul@142
|
48 respectivamente, configuram o pacote ($PACKAGE), sua versão, sua categoria,
|
|
paul@142
|
49 fornecem uma curta descrição e o nome do mantenedor. Exemplo para um pacote,
|
|
paul@142
|
50 o gerenciador de arquivos Clex:
|
|
paul@142
|
51 </p>
|
|
paul@142
|
52 <pre class="script">
|
|
paul@142
|
53 PACKAGE="clex"
|
|
paul@142
|
54 VERSION="3.16"
|
|
paul@142
|
55 CATEGORY="base-apps"
|
|
paul@142
|
56 SHORT_DESC="Text mode file manager."
|
|
paul@142
|
57 MAINTAINER="pankso@slitaz.org"
|
|
paul@142
|
58 </pre>
|
|
paul@142
|
59
|
|
paul@142
|
60 <h3>Variáveis (opcionais)</h3>
|
|
paul@142
|
61 <p>
|
|
paul@142
|
62 O Tazwok também lida com diversas variáveis opcionais. Pode, por exemplo, usar
|
|
paul@142
|
63 o nome de outro pacote fonte. Também há variáveis que são usadas pelo Tazpkg
|
|
paul@142
|
64 para gerenciar dependências ou prover informações sobre o pacote.
|
|
paul@142
|
65 </p>
|
|
paul@142
|
66 <p>
|
|
paul@142
|
67 <code>$DEPENDS</code>: Define dependências - pode haver muitas dependências
|
|
paul@142
|
68 separada por um espaço ou por linhas. Esta variável é usada principalmente pelo
|
|
paul@142
|
69 Tazpkg ao instalar o pacote e pelo Tazwok para construir grandes pacotes como
|
|
paul@142
|
70 o Xorg. Exemplo para o Clex que depende do ncurses:
|
|
paul@142
|
71 </p>
|
|
paul@142
|
72 <pre class="script">
|
|
paul@142
|
73 DEPENDS="ncurses"
|
|
paul@142
|
74 </pre>
|
|
paul@142
|
75 <p>
|
|
paul@142
|
76 <code>$BUILD_DEPENDS</code>: Define as dependências de compilação, novamente
|
|
paul@142
|
77 separadas por espaços ou por linhas. Esta variável é usada pelo Tazwok durante
|
|
paul@142
|
78 a geração de um pacote. Exemplo:
|
|
paul@142
|
79 </p>
|
|
paul@142
|
80 <pre class="script">
|
|
paul@142
|
81 BUILD_DEPENDS="ncurses-dev"
|
|
paul@142
|
82 </pre>
|
|
paul@142
|
83 <p>
|
|
paul@142
|
84 <code>$TARBALL</code> : O arquivo é um fonte com a extensão (tar.gz, tgz ou
|
|
paul@142
|
85 tar.bz2). Em geral, as variáveis $PACKAGE e $VERSION são usadas somente para
|
|
paul@142
|
86 mudar a extensão, ajudando a atualizar o pacote sem mudar a variável $VERSION.
|
|
paul@142
|
87 Um exemplo genérico (veja também o exemplo para a variável $SOURCE):
|
|
paul@142
|
88 </p>
|
|
paul@142
|
89 <pre class="script">
|
|
paul@142
|
90 TARBALL="$PACKAGE-$VERSION.tar.gz"
|
|
paul@142
|
91 </pre>
|
|
paul@142
|
92 <p>
|
|
paul@142
|
93 <code>$WEB_SITE</code> :
|
|
paul@142
|
94 O website oficial do pacote. Pode ocorrer que algumas bibliotecas não possuam
|
|
paul@142
|
95 um website, neste caso não há necessidade de especificar uma URL. Note que tanto
|
|
paul@142
|
96 o Tazwok e o Tazpkg esperam encontram uma URL completa:
|
|
paul@142
|
97 </p>
|
|
paul@142
|
98 <pre class="script">
|
|
paul@142
|
99 WEB_SITE="http://www.clex.sk/"
|
|
paul@142
|
100 </pre>
|
|
paul@142
|
101 <p>
|
|
paul@142
|
102 <code>$WGET_URL</code> :
|
|
paul@142
|
103 URL para baixar o arquivo fonte. Em geral, a variável $TARBALL pode ser usada
|
|
paul@142
|
104 para facilitar a atualização de um pacote sem mudar a variável $VERSION. Usando
|
|
paul@142
|
105 o arquivo de configuração, o Tazwok pode também configurar por padrão 3 mirrors:
|
|
paul@142
|
106 $GNU_MIRROR para o mirror GNU, $SF_MIRROR para o SourceForge e $XORG_MIRROR para
|
|
paul@142
|
107 o mirror do servidor gráfico Xorg. Exemplo para o Clex:
|
|
paul@142
|
108 </p>
|
|
paul@142
|
109 <pre class="script">
|
|
paul@142
|
110 WGET_URL="http://www.clex.sk/download/$TARBALL"
|
|
paul@142
|
111 </pre>
|
|
paul@142
|
112 <p>
|
|
paul@142
|
113 <code>$WANTED</code> :
|
|
paul@142
|
114 Os pacotes do SliTaz normalmente dependem da compilação de um pacote fonte.
|
|
paul@142
|
115 Algumas vezes a receita de um pacote não depende de compilação de regras, então
|
|
paul@142
|
116 a variável $WANTED é usada para copiar arquivos do fonte para outro pacote
|
|
paul@142
|
117 usando a variável $src.
|
|
paul@142
|
118 </p>
|
|
paul@142
|
119 <p>
|
|
paul@142
|
120 <code>$SOURCE</code> : Pode ocorrer de o nome do pacote .tazpkg ser diferente
|
|
paul@142
|
121 do nome do pacote fonte. Um exemplo é o dos pacotes Xorg: o nome da biblioteca
|
|
paul@142
|
122 X11 é "xorg-libX11" e o nome do pacote fonte é "libX11". Esta variável permite
|
|
paul@142
|
123 usar as variáveis $src e $_pkg durante a geração de um pacote. Pode-se notar
|
|
paul@142
|
124 que no caso da libX11, o nome do arquivo fonte torna-se $SOURCE-$VERSION.tar.gz.
|
|
paul@142
|
125 </p>
|
|
paul@142
|
126
|
|
paul@142
|
127 <h3>Variáveis usadas em funções</h3>
|
|
paul@142
|
128 <p>
|
|
paul@142
|
129 O Tazwok configura diversas variáveis que facilitam a compilação e construção
|
|
paul@142
|
130 de pacotes .tazpgk. Estas são controladas automaticamente pelo Tazwok usando
|
|
paul@142
|
131 as informações contidas na receita: elas podem ser usadas pela funções
|
|
paul@142
|
132 compile_rules e genpkg_rules descritas no capítulos Funções.
|
|
paul@142
|
133 </p>
|
|
paul@142
|
134 <p>
|
|
paul@142
|
135 <code>$src</code> : Define o caminho para o diretório de fontes ainda não arquivados.
|
|
paul@142
|
136 </p>
|
|
paul@142
|
137 <p>
|
|
paul@142
|
138 <code>$_pkg</code> : Define o caminho para os binários compilados instalados via
|
|
paul@142
|
139 "make DESTDIR=$PWD/_pkg install". Esta variável é usada para copiar os arquivos
|
|
paul@142
|
140 gerados e criar pacotes .tazpkg.
|
|
paul@142
|
141 </p>
|
|
paul@142
|
142 <p>
|
|
paul@142
|
143 <code>$fs</code> : Define o caminho para o pseudo sistema de arquivos (fs) em
|
|
paul@142
|
144 cada pacote. O "fs" de cada pacote corresponde à raiz do sistema, como se, por
|
|
paul@142
|
145 exemplo, o Clex estivesse em $fs/usr/bin/clex. Note a necessidade de criar
|
|
paul@142
|
146 os diretórios necessários por meio da função genpkg_rules() antes de copiar os
|
|
paul@142
|
147 arquivos.
|
|
paul@142
|
148 </p>
|
|
paul@142
|
149 <p>
|
|
paul@142
|
150 <code>$CONFIGURE_ARGS</code> : Variável definida no arquivo de configuração do
|
|
paul@142
|
151 Tazwok (tazwok.conf). Permite que sejam especificados argumentos de otimização
|
|
paul@142
|
152 genéricos durante a construção do pacote. O padrão é o argumento para a
|
|
paul@142
|
153 arquitetura i486.
|
|
paul@142
|
154 </p>
|
|
paul@142
|
155
|
|
paul@142
|
156 <h3>Funções</h3>
|
|
paul@142
|
157 <p>
|
|
paul@142
|
158 Uma receita deve conter 4 funções. O Tazwok lida com as funções contendo as
|
|
paul@142
|
159 regras de compilação (compile_rules) e as regras usadas para gerar um pacote
|
|
paul@142
|
160 (genpkg_rules). Estas funções podem conter todos os tipos de comandos padrão
|
|
paul@142
|
161 GNU/Linux, como sed, awk, patch e variáveis automaticamente configuradas.
|
|
paul@142
|
162 </p>
|
|
paul@142
|
163 <h4>compile_rules()</h4>
|
|
paul@142
|
164 <p>
|
|
paul@142
|
165 Para compilar um pacote pode-se usar a variável $src para mudar (cd) o diretório
|
|
paul@142
|
166 de fontes e usar a variável $CONFIGURE_ARGS para incluir argumentos do arquivo
|
|
paul@142
|
167 de configuração do Tazwok. Para construir um pacote normalmente se roda o "make"
|
|
paul@142
|
168 sem argumentos, e para instalar um pacote no diretório _pkg é necessário usar
|
|
paul@142
|
169 o comando "make DESTDIR=$PWD/_pkg install". Um exemplo genérico:
|
|
paul@142
|
170 </p>
|
|
paul@142
|
171 <pre class="script">
|
|
paul@142
|
172 # Regras para configurar e criar um pacote.
|
|
paul@142
|
173 compile_rules()
|
|
paul@142
|
174 {
|
|
paul@142
|
175 cd $src
|
|
paul@142
|
176 ./configure --prefix=/usr --infodir=/usr/share/info \
|
|
paul@142
|
177 --mandir=/usr/share/man $CONFIGURE_ARGS
|
|
paul@142
|
178 make
|
|
paul@142
|
179 make DESTDIR=$PWD/_pkg install
|
|
paul@142
|
180 }
|
|
paul@142
|
181 </pre>
|
|
paul@142
|
182 <h4>genpkg_rules()</h4>
|
|
paul@142
|
183 <p>
|
|
paul@142
|
184 Para gerar um pacote .tazpkg deve-se especificar comandos na função
|
|
paul@142
|
185 <code>genpkg_rules</code>. Neste exemplo criamos um pseudo diretório
|
|
paul@142
|
186 <code>usr/</code> no sistema de arquivos do pacote, copiamos todos os binários
|
|
paul@142
|
187 e por fim usamos "strip" para limpar os arquivos:
|
|
paul@142
|
188 </p>
|
|
paul@142
|
189 <pre class="script">
|
|
paul@142
|
190 # Rules to gen a SliTaz package suitable for Tazpkg.
|
|
paul@142
|
191 genpkg_rules()
|
|
paul@142
|
192 {
|
|
paul@142
|
193 mkdir -p $fs/usr
|
|
paul@142
|
194 cp -a $_pkg/usr/bin $fs/usr
|
|
paul@142
|
195 strip -s $fs/usr/bin/*
|
|
paul@142
|
196 }
|
|
paul@142
|
197 </pre>
|
|
paul@142
|
198 <h4>pre_install() e post_install()</h4>
|
|
paul@142
|
199 <p>
|
|
paul@142
|
200 Estas duas funções são iniciadas pelo Tazpkg ao instalar algum pacote. Elas
|
|
paul@142
|
201 devem ser definidas antes da geração do pacote .tazpkg pelo Tazwok. Se nenhuma
|
|
paul@142
|
202 regra é passada a estas funções, não há razão para mantê-las e elas podem ser
|
|
paul@142
|
203 removidas. Exemplo usando o comando "echo" para mostrar algum texto (nenhuma
|
|
paul@142
|
204 função pode estar vazia):
|
|
paul@142
|
205 </p>
|
|
paul@142
|
206 <pre class="script">
|
|
paul@142
|
207 # Comandos de pré e pós-instalação para o Tazpkg.
|
|
paul@142
|
208 pre_install()
|
|
paul@142
|
209 {
|
|
paul@142
|
210 echo "Processing pre-install commands..."
|
|
paul@142
|
211 }
|
|
paul@142
|
212 post_install()
|
|
paul@142
|
213 {
|
|
paul@142
|
214 echo "Processing post-install commands..."
|
|
paul@142
|
215 }
|
|
paul@142
|
216 </pre>
|
|
paul@142
|
217
|
|
paul@142
|
218 <!-- End of content -->
|
|
paul@142
|
219 </div>
|
|
paul@142
|
220
|
|
paul@142
|
221 <!-- Footer. -->
|
|
paul@142
|
222 <div id="footer">
|
|
paul@142
|
223 <div class="footer-right"></div>
|
|
paul@142
|
224 <a href="#top">Topo da Página</a> |
|
|
paul@142
|
225 <a href="index.html">Conteúdo</a>
|
|
paul@142
|
226 </div>
|
|
paul@142
|
227
|
|
paul@142
|
228 <div id="copy">
|
|
paul@142
|
229 Copyright © 2008 <a href="http://www.slitaz.org/pt/">SliTaz</a> -
|
|
paul@142
|
230 <a href="http://www.gnu.org/licenses/gpl.html">GNU General Public License</a>;<br />
|
|
paul@142
|
231 Documentation is under
|
|
paul@142
|
232 <a href="http://www.gnu.org/copyleft/fdl.html">GNU Free Documentation License</a>
|
|
paul@142
|
233 and code is <a href="http://validator.w3.org/">valid xHTML 1.0</a>.
|
|
paul@142
|
234 </div>
|
|
paul@142
|
235
|
|
paul@142
|
236 </body>
|
|
paul@142
|
237 </html>
|