1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
|
Simplepkg: gerenciamento de instala��es e pacotes
-------------------------------------------------
Autor: Silvio Rhatto <rhatto at riseup.net>
Licen�a: GPL
O simplepkg � um sistema de gerenciamento de sistemas slackware que roda sobre o pkgtool.
Ele � composto por v�rios scripts que desempenham fun��es de administra��o e desenvolvimento de
sistemas do tipo Slackware, procurando fechar um circuito de produ��o, envolvendo a constru��o,
a instala��o de pacotes e at� mesmo a instala��o do sistema de forma automatizada.
Do lado do desenvolvedor/a, ele ajuda na cria��o de SlackBuilds e constru��o de pacotes.
Do lado do administrador/a, ele possibilita a instala��o automatizada de sistemas, instala��o
de pacotes e a cria��o de "templates" de instala��o -- que cont�m todos os arquivos de configura��o,
informa��es de permiss�es e scripts de p�s-instala��o de uma dada m�quina ou jaula.
Documenta��o
------------
A documenta��o mais atualizada do simplepkg est� em http://slack.sarava.org ou juntamente com a �ltima
vers�o do c�digo.
Descri��o
---------
Todas as distribui��es de GNU/Linux j� tem algum sistema de empacotamento amadurecido. A quest�o
agora � a praticidade de instalar e controlar o que est� instalado, tanto pacotes como arquivos
de configura��o de uma m�quina, al�m da facilidade na cria��o de pacotes.
Imagine por exemplo se voc� precisa manter uma lista de pacotes de 200 m�quinas slackware, sendo
que algumas s�o usadas como desktop, outras como servidores web, alguma sendo o servidor de email
e assim por diante. Imagine agora que voc� perca o disco de algumas dessas m�quinas ou que precise
cotidianamente reinstalar ou atualizar um sistema.
Usar o cd de instala��o do slackware e configurar na m�o toda a vez que der um pau faria com que
voc� ficasse louco/a e desperdi�asse muito tempo, al�m do que sempre ocorre de esquecermos algum
detalhe ou pacote durante a configura��o do sistema. Manter um backup completo de cada m�quina,
por outro lado, pode ser muito custoso se o n�mero delas for muito grande.
O simplepkg permite que voc� mantenha um template para cada grupo de m�quinas e com apenas um
comando instalar o template numa parti��o. Al�m do template, voc� precisa configurar o simplepkg
para obter pacotes de um reposit�rio local ou remoto.
Gerenciar instala��es e pacotes n�o � tudo o que o simplepkg faz. Ele pode ser usado at� na
cria��o de jaula e vservers, podendo manter toda a configura��o das m�quinas num reposit�rio
Subversion.
O simplepkg funciona n�o apenas com o Slackware mas com qualquer port (oficial ou n�o) que
siga minimamente os padr�es oficiais.
Arquitetura
-----------
O simplepkg � um conjunto de scripts escritos com a filosofia KISS (Keep It Simple, Stupid) em mente.
Ele � um sistema muito simples, composto pelos seguintes comandos:
- mkjail: constr�i uma jaula/instala��o de slackware numa pasta
- templatepkg: criar ou adiciona pacotes a um template
- lspkg: lista pacotes instalados
- jail-update: inverso do jail-commit
- jail-commit: atualiza o template
- rebuildpkg: reconstr�i um pacote a partir de sua entrada no /var/log/packages
- simplaret: obt�m pacotes de reposit�rios locais ou remotos
- createpkg: baixa, compila e empacota software de acordo com scripts presentes num reposit�rio
- repos: cria e mant�m reposit�rios
- mkbuild: cria scripts de constru��o de pacotes
Instalando o simplepkg
----------------------
Para baixar o pacote do simplepkg, v� em http://slack.sarava.org/packages/noarch/. Depois, basta usar
o comando
installpkg simplepkg-VERSAO-noarch-BUILD.tgz
Usando o simplepkg
------------------
As tr�s principais aplica��es desse conjunto s�o:
- Gerenciamento de pacotes
- Cria��o e manuten��o de jaulas
- Cria��o de pacotes
O gerencamento de pacotes � feito atrav�s do simplaret, e por ser algo bem espec�fico est� detalhado
no artigo correspondente. As se��es a seguir mostrar�o como o simplepkg pode ser utilizado para criar
e manter jaulas, assim como tamb�m criar pacotes.
Criando templates de instala��o
-------------------------------
Originalmente, o simplepkg foi desenvolvido para ajudar na automatiza��o de instala��es de sistemas
slackware. Para isso, ele trabalha com templates -- listas com pacotes instalados, scripts e arquivos
de configura��o -- permitindo criar perfis de instala��o que podem ser ent�o usados para instalar o
sistema numa outra parti��o ou criar um chroot.
A constru��o de um template � feita atrav�s do programa templatepkg. Para criar um template de nome
"meu-slackware" contendo a lista de pacotes atualmente instalados no seu sistema, digite
templatepkg -c meu-slackware
A op��o -c (ou --create) criar� a pasta /etc/simplepkg/templates/meu-slackware, que conter� os
seguintes componentes:
- /etc/simplepkg/templates/meu-slackware/meu-slackware.d: c�pia de arquivos de configura��o
- /etc/simplepkg/templates/meu-slackware/meu-slackware.s: scripts de p�s-instala��o
- /etc/simplepkg/templates/meu-slackware/meu-slackware.perms: informa��es sobre arquivos
- /etc/simplepkg/templates/meu-slackware/meu-slackware.template: lista de pacotes
Esses quatro componentes s�o suficientes para armazenar todas as caracter�sticas de uma instala��o
de slackware: a lista de pacotes controla o software instalado (a partir do conte�do da pasta
/var/log/packages), a c�pia dos arquivos de configura��o controla as personaliza��es feitas para o uso
dos aplicativos e os scripts de p�s-instala��o cuidam de qualquer rotina que precisa ser realizada
exatamente ap�s a instala��o do sistema. J� o arquivo de informa��es sobre arquivos cont�m as permiss�es,
o dono/a e grupo de cada arquivo de configura��o presente no template.
Se voc� quiser criar um template a partir de uma instala��o de slackware presente numa outra parti��o
do sistema que n�o seja a ra�z, basta usar um comando do tipo
templatepkg -c meu-slackware /mnt/slackware
onde /mnt/slackware � o local onde o sistema alternativo est� instalado. Ap�s criado, o template possuir�
apenas a lista de pacotes contendo o nome dos aplicativos instalados no seu sistema. Como a pasta
/var/log/packages n�o preserva a ordem de instala��o dos pacotes, ent�o talvez voc� queira editar manualmente
a lista de pacotes de um template. Para isso, use o comando
templatepkg -e meu-slackware
Para adicionar um arquivo de configura��o no seu novo template, basta dar um comando como
templatepkg -a meu-slackware /etc/hosts
Isso adicionar� o arquivo /etc/hosts no template "meu-slackware". Al�m de salvar o arquivo e copi�-lo
automaticamente quando voc� instalar seu sistema, o simplepkg ainda pode tomar conta de qualquer altera��o
que o /etc/hosts sofrer no sistema, seja mudan�a no conte�do do arquivo, dono ou permiss�o. Se voc� ainda
estiver armazenando seus templates num reposit�rio svn (o que veremos a seguir), o simplepkg pode ainda
manter um hist�rico completo das altera��es do arquivo.
ATEN��O: evite ao m�ximo deixar arquivos contendo senhas ou chaves privadas num template. O lugar mais
adequado para deixar esse tipo de coisa � num backup seguro.
Criando jaulas e replicando instala��es
---------------------------------------
Uma vez que um template foi criado com uma lista de pacotes e opcionalmente com arquivos de configura��o
e scripts de p�s-instala��o (que ser�o detalhados a seguir), voc� pode replicar sua instala��o de slackware
utilizando o comando
mkjail jaula meu-slackware
Isso cria uma nova �rvore do slackware em /vservers/jaula contendo todos os pacotes e arquivos de configura��o
do template "meu-slackware". A instala��o dos pacotes ser� feita pelo aplicativo simplaret, que deve estar
configurado corretamente e cuja configura��o padr�o deve funcionar para a maioria dos casos.
Se voc� quiser instalar essa jaula em outro local que n�o seja a pasta /vservers (esse local padr�o pode ser
mudado pelo arquivo de configura��o do simplepkg), basta usar um comando do tipo
ROOT=/mnt mkjail hda2 meu-slackware
O comando acima faz exatamente o que voc� est� pensando: replica sua instala��o slackware em /mnt/hda2,
dispensando totalmente o programa de instala��o do slackware!
Caso nenhum template for especificado, o mkjail utiliza o template /etc/simplepkg/default. O simplepkg j� vem
com alguns templates padr�es, presentes em /etc/simplepkg/defaults/templates.
Scripts de p�s-instala��o
-------------------------
Opcionalmente, � poss�vel manter scripts de p�s-instala��o num template. Tais script s�o executados exatamente
ap�s a instala��o de uma jaula e c�pia de arquivos de configura��o pelo mkjail. Para criar ou editar um script
de p�s-instala��o, use um comando como
templatepkg -b meu-slackware nome-do-script.sh
Isso adicionar� o script nome-do-script.sh no template "meu-slackware". O mkjail passa dois argumentos para
cada script de p�s-instala��o: a pasta superior e o nome da jaula ("/mnt" e "hda2" no nosso exemplo anterior).
Assim, um exemplo de script seria algo como
#!/bin/bash
chroot $1/$2/ sbin/ldconfig
Listando o conte�do de um template
----------------------------------
Para listar os templates dispon�veis ou o conte�do de um template, use comandos como
templatepkg -l
templatepkg -l meu-slackware
Removendo arquivos de um template
---------------------------------
Analogamente � forma como se adicona arquivos num template, remov�-los pode ser feito com o seguinte comando:
templatepkg -d meu-slackware /etc/hosts
Isso remove o arquivo /etc/hosts do template "meu-slackware".
Apagando um template
--------------------
Para apagar um template, basta utilizar um comando como
templatepkg -r meu-slackware
Atualizando um template
-----------------------
Agora que j� abordamos as op��es do templatepkg, � hora de visitarmos um outro aplicativo, desta vez utilizado
para manter um template atualizado. O jail-commit � um script que copia as altera��es dos arquivos (conte�do,
propriedade e permiss�es) de um template a partir do conte�do de uma jaula ou instala��o.
Por exemplo, caso se queira copiar as altera��es da jaula /mnt/hda2 no template "meu-slackware", basta usar o
comando
jail-commit /mnt/hda2 meu-slackware
Al�m da lista de pacotes do template "meu-slackware" ser atualizada de acordo com a lista de pacotes presente
em /mnt/hda2/var/log/packages, todos os arquivos de configura��o presentes no template "meu-slackware" ser�o
comparados com os correspondentes da pasta /mnt/hda2 e as diferen�as s�o copiadas para o template. Da mesma
forma, as permiss�es e informa��o de dono/grupo dos arquivos tamb�m � atualizada no template.
O comando jail-commit possibilita que um template sempre esteja atualizado e refletindo a configura��o atual
de uma instala��o de slackware. Se voc� quiser atualizar apenas a lista de pacotes de um template, por�m, use
templatepkg -u meu-template
Para facilitar ainda mais o controle das altera��es do sistema, existe ainda uma facilidade do arquivo
/etc/simplepkg/jailist. Esse arquivo serve, al�m de outros prop�sitos descritos na documenta��o do simplaret,
para que o jail-commit saiba de antem�o quais s�o as instala��es de sistema do tipo Slackware presentes numa
m�quina, al�m da instala��o principal na ra�z do sistema.
Suponha que uma m�quina possua duas instala��es de slackware, al�m da principal (ra�z):
- /mnt/slackware-1 usando o template "slackware-1"
- /mnt/slackware-2 usando o template "slackware-2"
Se o arquivo /etc/simplepkg/jailist contiver as seguintes linhas,
/mnt/slackware-1
/mnt/slackware-2
ent�o o comando
jail-commit
atualizar� o template "slackware-1" de acordo com o conte�do da jaula /mnt/slackware-1 e o template "slackware-2"
com o conte�do da jaula /mnt/slackware-2. Se, al�m desses dois templates, existir um outro de nome "main", ent�o
o jail-commit sem argumentos tamb�m copiar� as atualiza��es da instala��o ra�z, deixando-as no template "main".
Voc� pode inclusive colocar uma entrada no crontab do tipo
20 4 * * * jail-commit
para que seus templates sejam atualizados diariamente. Se voc� ainda possui o envio de emails configurado na sua
m�quina, ent�o a sa�da do jail-commit ser� enviada pelo cron diariamente para seu email, contendo diffs das altera��es
de arquivos de configura��o a lista de pacotes adicionados ou removidos no sistema.
Restaurando arquivos de configura��o numa jaula
-----------------------------------------------
A opera��o contr�ria ao que o jail-commit faz tamb�m � poss�vel: suponha que voc� mexeu na configura��o do sistema
mas se arrependeu das altera��es e deseja voltar a configura��o para o modo como ela se encontra no seu template,
basta usar o comando
jail-update /mnt/hda2 meu-slackware
Armazenando as configura��es no reposit�rio Subversion
------------------------------------------------------
Para aumentar ainda mais a flexibilidade e o controle do conte�do dos templates, � poss�vel armazen�-los num
reposit�rio Subversion. Para isso, edite o arquivo /etc/simplepkg/simplepkg.conf e deixe o par�metro de configura��o
TEMPLATES_UNDER_SVN com o valor "yes".
Depois, crie um reposit�rio subversion para armazenar seus templates, usando algo como
svnadmin create /var/svn/simplepkg --fs-type fsfs
Com o reposit�rio criado, basta importar seus templates com o comando
templatepkg -e file:///var/svn/simplepkg
A partir da�, o comando jail-commit enviar� automaticamente todas as altera��es dos templates para o reposit�rio
subversion. Se, por outro lado, voc� quiser baixar as altera��es dos templates que est�o no reposit�rio remoto
para sua c�pia local, use o comando
templatepkg -s
Caso voc� queira importar uma pasta de templates de um reposit�rio j� existente, use
templatepkg -i file:///var/svn/simplepkg
onde file:///var/svn/simplepkg � o camninho do reposit�rio.
Atualiza��o de jaulas
---------------------
A atualiza��o de jaulas e sistemas instalados � feita atrav�s do simplaret e tamb�m utiliza o arquivo
/etc/simplepkg/jailist. Para mais informa��es a respeito, consulte a documenta��o do simplaret para mais detalhes.
Arquiteturas e vers�es diferentes
---------------------------------
O simplepkg foi idealizado para permitir que um mesmo template possa ser usado para criar jaulas de
arquiteturas e vers�es diferentes de sistemas padr�o slackware. A atualiza��o desses sistemas tamb�m
� unificada. Essa possibilidade s� � permitida se voc� usa o simplaret e n�o o swaret como ferramenta
de obten��o de pacotes.
Por exemplo, para criar uma instala��o de slackware 10.1 (assumindo que suas defini��es de reposit�rios
do /etc/simplepkg/repos.conf contenham locais com slack 10.1), basta usar o comando
VERSION=10.1 mkjail minha-jaula template-servidor
Arquiteturas diferentes tamb�m podem ser usadas. Se voc� est� num sistema x86_64 e quer instalar um
slack 10.2 numa parti��o, experimente
ARCH=i386 VERSION=10.2 ROOT=/mnt mkjail hda2 meu-slackware
Note que os templates independem de arquitetura e vers�o, j� que eles s� cont�m nomes de pacotes,
arquivos de configura��o e scripts.
Criando um pacote de um template
--------------------------------
Se, por algum motivo, voc� quiser construir um pacote com o conte�do de um template, experimente
o comando
templatepkg -p nome-do-template
No entanto, o simplepkg foi criado para que esse tipo de comportamento seja evitado, j� que � mais
simples manter templates de configura��o do que pacotes contendo a configura��o de uma instala��o.
Construindo pacotes
-------------------
At� aqui, apenas mostramos os aplicativos do simplepkg usados para a manuten��o de instala��es
de slackware. No entanto, uma das outras finalidades desta su�te � a constru��o de pacotes, o
que � feita pelo programa createpkg, Como dito anteriormente, o createpkg: baixa, compila e
empacota software de acordo com scripts presentes num reposit�rio de scripts, funcionando com
um gerenciador de "ports" para slackware.
O createpkg pode funcionar com qualquer tipo de script de constru��o de pacotes (SlackBuilds)
mas funcionar� melhor se os mesmos seguirem o padr�o descrito na p�gina
http://slack.sarava.org/trac/wiki/SlackBuilds
Especificamente, o createpkg foi desenvolvido para utilizar os slackbuild dispon�veis em
http://slack.sarava.org/slackbuilds. O createpkg trabalha com reposit�rios do tipo subversion.
Para obter os scripts do reposit�rio do slack.sarava.org, digite
createpkg --sync
Em seguida, voc� pode listas todos os scripts dispon�veis:
createpkg --list
Para buscar por um pacote, use
createpkg --search latex2html
No caso, a busca � feita pelo SlackBuild do aplicativo "latex2html". Suponha agora que voc� queira
construir o pacote desse aplicativo:
createpkg latex2html
O pacote resultante estar� na pasta /tmp ou no valor especificado pela vari�vel de ambiente $REPOS.
Para criar e tamb�m instalar o pacote, basta
createpkg --install latex2html
Se o pacote possuir depend�ncias listadas num arquivo slack-required e que n�o estiverem instaladas
no sistema, o createpkg tentar� process�-las uma a uma antes de tentar construir o pacote desejado:
se as depend�ncias n�o forem encontradas no reposit�rio de scripts, ent�o o createpkg tentar�
baix�-las de um reposit�rio bin�rio atrav�s do simplaret. Se voc� n�o quiser que a resolu��o de
depend�ncias seja seguida, use a op��o --no-deps.
Para mais detalhes de funcionamento, experimente o comando
createpkg --help
ou ent�o acesse a p�gina http://slack.sarava.org/trac/wiki/SlackBuilds.
Aplicativos auxiliares
----------------------
O simplepkg acompanha ainda alguns aplicativos auxiliares:
- lspkg: lista pacotes instalados
- rebuildpkg: reconstr�i um pacote a partir de sua entrada no /var/log/packages
- repos: cria e mant�m reposit�rios
- mkbuild: cria scripts de constru��o de pacotes
O comando lspkg � um utilit�rio simples para a visualiza��o de pacotes instalados no sistema. J� o
rebuildpkg ajuda a recuperar pacotes instalados cujo tgz original foi perdido. O comando rebuildpkg
reconstr�i um pacote a partir de uma entrada no /var/log/packages. O comando
rebuildpkg coreutils
reconstr�i um pacote do coreutils usando os arquivos e as metainforma��es listadas no arquivo
do /var/log/packages/ correspondente ao coreutils.
Por fim, os scripts repos e mkbuild s�o os que se encontram na etapa de maior desenvolvimento: repos
cria um reposit�rio de pacotes a partir de uma pasta contendo pacotes do tipo pkgtool e o mkbuild
� um aplicativo para auxiliar a cria��o de scripts de constru��o de pacotes que podem ser utilizados
sozinhos ou pelo o createpkg.
Par�metros de configura��o
--------------------------
O arquivo de configura��o do simplepkg � o /etc/simplepkg/default/simplepkg.conf. Ele cont�m par�metros de
configura��o de todos os scripts, por�m neste texto n�o trataremos das op��es espec�ficas ao simplaret,
as quais tem uma se��o espec�fica no artigo correspondente.
Se voc� quiser alterar algum par�metro, n�o edite esse arquivo: use, ao inv�s dele, o arquivo
/etc/simplepkg/simplepkg.conf, pois este sobrescreve qualquer op��o padr�o.
- JAIL_ROOT: pasta padr�o onde as jaulas s�o criadas pelo mkjail. Valor padr�o: "/vservers".
- ADD_TO_JAIL_LIST: controla se uma jaula criada pelo mkjail deve ser adicionada automaticamente
no arquivo /etc/simplepkg/jailist. O valor padr�o � "1" (habilitado).
- TEMPLATES_UNDER_SVN: indica se os templates est�o armazenados num reposit�rio subversion.
O valor padr�o � "no" (n�o).
- TEMPLATE_FOLDER: indica qual � a pasta de templates. O valor padr�o � "/etc/simplepkg/templates"
e n�o � recomend�vel alter�-lo.
- TEMPLATE_STORAGE_STYLE: controla a forma de armazenamento de templates. O valor padr�o �
"own-folder" e essa op��o apenas deve ser modificada se voc� armazena seus templates num
formato antigo do simplepkg e deseja manter compatibilidade.
Vale lembrar que todas as op��es booleanas (isto �, que podem ser apenas habilitadas ou desabilitadas)
do simplepkg.conf tem os seguintes valores permitidos: "1" e "yes" para habilitado e "0" ou "no" para
desabilitado.
Mais informa��es
----------------
O simplepkg foi escrito por Silvio Rhatto (rhatto at riseup.net) sob licen�a GPL e seu c�digo fonte �
disponibilizado atrav�s do reposit�rio subversion:
svn checkout http://slack.sarava.org/simplepkg
O wiki de desenvolvimento est� em http://slack.sarava.org/trac/wiki/Simplepkg e o endere�o da lista
de discuss�o utilizada para discuss�es sobre simplepkg ou mesmo distribui��es e pacotes do tipo
Slackware � http://listas.sarava.org/wws/info/slack.
|