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
|
Simplepkg: gerenciamento de instala��es e metapacotes
-----------------------------------------------------
Autor: Silvio Rhatto <rhatto at riseup.net>
Licen�a: GPL
O simplepkg � um sistema de gerenciamento de pacotes que roda sobre o pkgtool.
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, criar um chroot espec�fico ou at� trabalhar com o conceito de metapacotes: uma
lista de pacotes que pode ser instalada e removida com apenas um comando.
Documenta��o
------------
A documenta��o mais atualizada do simplepkg est� em http://slack.sarava.org/node/12
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.
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 metapacotes n�o � tudo o que o simplepkg faz. Ele pode ser usado at� na
cria��o de vservers.
Arquitetura
-----------
O simplepkg � um conjunto de scripts escritos com a filosofia KISS em mente. Ele � um sistema muito
simples, composto pelos seguintes comandos:
- mkjail: constr�i uma jaula/instala��o de slackware numa pasta
- metapkg: instala ou remove um metapacote
- templatepkg: criar ou adiciona pacotes a um template
- lspkg: lista pacotes instalados
- jail-upgrade: faz o upgrade nas jaulas
- rebuildpkg: reconstr�i um pacote a partir de sua entrada no /var/log/packages
- simplaret: obt�m pacotes de reposit�rios locais ou remotos
A pasta de configura��o e armazenamento de templates � a /etc/simplepkg. Templates s�o arquivos contendo
uma lista de pacotes, um pacote por linha e com a extens�o .template. Como exemplo, um template poderia se
chamar minimo.template e conter a seguinte lista:
aaa_base
aaa_elflibs
apache
bash
bin
coreutils
findutils
Se voc� quiser tamb�m � poss�vel usar um tagfile do slackware como template, sem nem precisar edit�-lo.
Instalando o simplepkg
----------------------
Para baixar o pacote do simplepkg, v� em http://slack.sarava.org/packages/noarch/.
installpkg simplepkg-VERSAO-noarch-BUILD.tgz
Alternativamente, se voc� est� com o swaret instalado, adicione em seu swaret.conf a linha
REPOS_ROOT=SlackMidiataticaNoarch%http://slack.sarava.org/packages/noarch
e ent�o digite
swaret --update
swaret --install simplepkg
Configurando o simplepkg
------------------------
Como exemplo, vamos criar uma jaula baseada nos pacotes instalados no seu slackware. Edite o
arquivo /etc/simplepkg/simplepkg.conf:
# /etc/simplepkg/simplepkg.conf
JAIL_ROOT="/vservers" # local onde as jaulas ser�o criadas
SIMPLARET="simplaret" # programa que baixa os pacotes (pode ser o swaret se voce o tiver)
STORAGE="/var/simplaret" # local onde o simplepkg armazena seus pacotes
SIMPLARET_CLEAN="1" # apaga o cache de pacotes antes da instala��o da jaula
SIMPLARET_DELETE_DOWN="1" # apaga o cache de pacotes ap�s a instala��o
SIMPLARET_UPDATE="0" # atualiza as listas de pacotes antes de iniciar a instala��o da jaula
SIMPLARET_PURGE_WEEKS="N" # apaga os pacotes do cache mais velhos que N semanas antes de instalar
PATCHES_DIR="/var/simplaret/patches" # local os patches s�o armazenados
DEFAULT_ARCH="i386"
DEFAULT=VERSION="10.2"
STORAGE="/storage/packages" # where simplepkg store packages
PASSIVE_FTP="1"
Para definir quais reposit�rios de pacotes voc� usar�, edite o arquivo /etc/simplepkg/repos.conf,
colocando algo como
ROOT-i386="http://slack.sarava.org/packages/slackware"
REPOS-i386="slack-sarava%http://slack.sarava.org/packages/slackware/slackware-10.2/"
ROOT-x86_64-10.2="http://darkstar.ist.utl.pt/pub/slamd64/"
REPOS-x86_64-10.2="slamd-sarava%http://slack.sarava.org/packages/slamd64/slamd64-10.2/"
Para informa��es detalhadas sobre o simplaret, consulte seu artigo espec�fico em http://slack.sarava.org/node/16
Se voc� quer utilizar o swaret em lugar do simplaret, o swaret.conf deve estar bem configurado para que ele
seja capaz de baixar e instalar todos os pacotes dos templates. Par�metros como EXCLUDE podem ser um empecilho,
e se voc� os remover da sua instala��o tenha muito cuidado ao atualizar o seu sistema via swaret --upgrade.
A desvantagem de usar o swaret � que voc� n�o ter� como administrar jaulas e instala��es de m�ltiplas arquiteturas.
Criando jaulas e replicando instala��es
---------------------------------------
templatepkg meu-slackware
mkjail jaula meu-slackware
Isso cria o template meu-slackware a partir da sua lista de pacotes em /var/log/packages e cria uma nova �rvore
com esses pacotes na pasta /vservers/jaula (dependendo de qual o valor da vari�vel JAIL_ROOT do simplepkg.conf, � claro).
Se voc� quiser que alguns arquivos de configura��o e executar scripts ap�s a instala��o dessa jaula, basta colocarmos na
pasta /etc/simplepkg/meu-slackware.d/ os arquivos de configura��o (dentro da hierarquia de pastas do sistema, isto �,
/etc/simplepkg/meu-slackware.d/etc/apache/httpd.conf) e os script em /etc/simplepkg/meu-slackware.s/. O template vserver,
que j� vem no mkjail cont�m um exemplo de script.
Voc� pode especificar tamb�m destinos alternativos para sua jaula, atrav�s de 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.template.
Se voc� manter uma jaula em JAIL_ROOT com o mesmo nome que um template, � poss�vel ainda usar o script jail-update
para copiar todas as altera��es de arquivos da jaula na pasta de arquivos do seu template (/etc/simplepkg/nome-da-jaula.d).
Assim, basta que voc� copie todos os arquivos de configura��o que voc� editou para essa pasta e deixar o jail-update numa
crontab para que voc� tenha sempre um template atualizado e baseado nas jaulas / instala��es que voc� tem rodando e que
estiverem listadas no arquivo /etc/simplepkg/jailist:
jail-update
Para adicionar ou remover pacotes de um template, basta editar o arquivo de template. Uma outra forma de adicionar
arquivos � usando o templatepkg com a op��o -a, que adiciona apenas novos pacotes ao template. Se voc� quiser que o
templatepkg crie um template a partir de uma jaula, simplesmente use
templatepkg jaula /vservers/jaula
Metapacotes
-----------
Outro uso dos templates � a cria��o de pacotes: imagine por exemplo a dificuldade de um usu�rio/a novo de slackware
para instalar o cinelerra e todas as suas depend�ncias. Criando um template contendo o nome de todos os pacotes
necess�rios para rodar esse software permite que um usu�rio instale-o simplesmente com o comando
metapkg --install cinelerra
O comando sugere uma semelhan�a com o uso direto do swaret ou do slapt-get, com a �nica diferen�a residindo no
modo como cada um desses programas lida com as depend�ncias de um pacote. Os slapt-get suporta o arquivo
slack-required, que pode ou n�o estar presente no pacote. J� o swaret possui uma ferramenta pr�pria para a
cria��o de uma lista de depend�ncias.
O simplepkg n�o pretende substituir esses dois modos de checagem e sim propor uma alternativa de distribui��o
de pacotes em que as depend�ncias s�o resolvidas sem precisar de um reposit�rio de depend�ncias ou uma modifica��o
no pr�prio pacote, que � o caso do slack-required, um arquivo que na maioria das vezes n�o est� presente.
A remo��o de um aplicativo e todas as suas depend�ncias podem ser feitas simplesmente com o comando
metapkg --remove cinelerra
Upgrade de jaulas
-----------------
O upgrade de jaulas que estejam em JAIL_ROOT pode ser efetuado com o comando jail-upgrade. Simplesmente coloque
os patches em PATCHES_DIR e d� o comando
jail-upgrade
Se voc� quiser atualizar apenas uma das jaulas que est�o em JAIL_ROOT, use
jail-upgrade nome-da-jaula
Para especificar uma pasta contendo patches diferente de PATCHES_DIR (�til quando voc� possui jaulas com
diferentes vers�es do slackware), simplesmente use
PATCHES=/local/dos/patches jail-upgrade nome-da-jaula
De modo an�logo ao mkjail, � poss�vel indicar ao jail-upgrade uma outra pasta onde a jaula est� armazenada:
ROOT=/otherroot jail-upgrade
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. Por isso, o templatepkg, o metapkg, o lspkg e o jail-update
funcionam normalmente.
Para atualizar suas jaulas, o jail-upgrade checa antes qual a vers�o e arquitetura de cada uma
de suas jaulas atrav�s do /etc/slackware-version correspondente e a partir disso aplica os patches
da arquitetura e vers�o da mesma, usando para isso o simplaret (veja a documenta��o pr�pria).
Desse modo, mesmo que voc� tenha jaulas de vers�es e arquiteturas diversas, usar o comando "jail-upgrade"
faz a atualiza��o sem problemas, desde que seus patches estejam organizados por arquitetura e vers�o,
conforme � detalhado na documenta��o do simplaret, em http://slack.sarava.org/node/16.
Aplicativo auxiliar: rebuildpkg
-------------------------------
O simplepkg acompanha ainda um aplicativo auxiliar que 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.
Fonte
-----
Se voc� quiser obter diretamente o c�digo-fonte do simplepkg, baixe-o do reposit�rio:
svn checkout svn://slack.sarava.org:40/simplepkg
|