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
|
\documentclass{article}
\usepackage[brazilian]{babel}
\usepackage[latin1]{inputenc}
\usepackage[dvips]{graphics}
\usepackage{hyperref}
\usepackage{html,makeid}
\title{Simplaret: ferramenta para obtenção de pacotes}
\author{Silvio Rhatto}
\begin{document}\label{start}
\maketitle
\begin{abstract}
O \emph{simplaret} é a ferramenta do \htmladdnormallink{simplepkg}{http://slack.sarava.org/node/12} utilizada para obter pacotes de repositórios locais ou remotos. Com ele, você pode não só baixar pacotes do seu sistema \emph{slackware} como também pode baixar de qualquer versão ou arquitetura cujo repositório siga os \htmladdnormallink{mirror guidelines}{http://www.slackware.com/getslack/mirroring_guidelines.txt}, permitindo que você gerencie facilmente todas as suas jaulas e instalações de slackware, independentemente da arquitetura ou versão que elas utilizem. English version \htmladdnormallink{here}{/node/17}.
Ele foi inspirado no comportamento do swaret mas não pretende de modo algum chegar no nível de complexidade deste, mas sim executar a obtenção de pacotes de um modo diferente. Sua finalidade é apenas baixar pacotes para que os aplicativos do \emph{simplepkg} possam utilizá-lo posteriormente. O \emph{simplaret} ainda pode ser usado sozinho para procurar e baixar pacotes.
\end{abstract}
\section{Obtendo e instalando}
O \emph{simplaret} acompanha o \emph{simplepkg} e por isso sua instalação e configuração é dada no \htmladdnormallink{artigo do simplepkg}{/node/12}. Ele utiliza o mesmo arquivo de configuração do simplepkg, o \emph{/etc/simplepkg/simplepkg.conf} e guarda as definições de repositórios em \emph{/etc/simplepkg/repos.conf}.
\section{Organização do repositório}
O repositório de armazenamento local do simplaret é definido pelo parâmetro \emph{STORAGE} e é organizado da seguinte maneira:
\begin{verbatim}
$STORAGE/arch/version/
\end{verbatim}
Pacotes obtidos num repositório que não seja oficial da distribuição ficam em
\begin{verbatim}
$STORAGE/arch/version/repository-name/
\end{verbatim}
Isso quer dizer, por exemplo, que pacotes do slackware 10.2 ficariam em
\begin{verbatim}
$STORAGE/i386/10.2/
\end{verbatim}
e os pacotes obtidos a partir do \htmladdnormallink{repositório slamd64 do slack.sarava.org}{/node/11} ficaria, por exemplo, em
\begin{verbatim}
$STORAGE/x86_64/10.2/slack.sarava.org/
\end{verbatim}
No arquivo de repositórios (\emph{/etc/simplepkg/repos.conf}), as definições de repositório seguem o seguinte esquema, semelhante ao formato de configuração do \emph{swaret}:
\begin{verbatim}
ROOT-i386="http://slack.sarava.org/slackware/"
ROOT-x86_64="http://ftp.heanet.ie/pub/slamd64/"
REPOS-i386-10.2="slack.sarava.org%http://slack.sarava.org/packages/slackware/slackware-10.2/"
REPOS-x86_64-10.2="slack.sarava.org%http://slack.sarava.org/packages/slamd64/slamd64-10.2/"
\end{verbatim}
Repositórios definidos como \emph{ROOT} são aqueles que
\begin{itemize}
\item Possuem pacotes da distribuição oficial ou
\item Estão organizados por versão, de acordo com os \htmladdnormallink{mirror guidelines}{http://www.slackware.com/getslack/mirroring_guidelines.txt}
\end{itemize}
Já os repositórios definidos como \emph{REPOS} são aqueles que contém pacotes para uma versão específica e/ou que são não-oficiais.
Quando o \emph{simplaret} busca ou obtém um pacote, a precedência pelos repositórios é dada às definições de \emph{ROOT} e em seguinda às de \emph{REPOS}. As definições \emph{REPOS} ainda devem possuir, além da \emph{URL} do repositório, um nome para identificá-lo, sendo que esses dois campos são separados por um delimitador.
\section{Baixando as listas de pacotes}
Após configurá-lo, é preciso atualizar a lista de pacotes:
\begin{verbatim}
simplaret --update
\end{verbatim}
Isso atualiza a lista de pacotes da arquitetura definida em \emph{DEFAULT\_ARCH} e da versão \emph{DEFAULT\_VERSION} apenas. Se você quiser forçar a atualização, por exemplo, para a arquitetura \emph{x86\_64} (\emph{slamd64}) e versão \emph{10.2}, basta
\begin{verbatim}
ARCH=x86_64 VERSION=10.2 simplaret --update
\end{verbatim}
\section{Buscando pacotes}
Para buscar um pacote, esses comandos servem de exemplo:
\begin{verbatim}
simplaret --search coreutils
\end{verbatim}
pacote para o \htmladdnormallink{Slack/390}{http://www.slack390.org/},
\begin{verbatim}
ARCH=s390 simplaret --search x11
\end{verbatim}
e para \emph{slackware 10.1} com pacotes adicionais em \emph{i686},
\begin{verbatim}
ARCH=i686 VERSION=10.1 simplaret --search icecast
\end{verbatim}
\section{Baixando um pacote}
Para baixar um pacote:
\begin{verbatim}
simplaret --get icecast
\end{verbatim}
O simplaret baixa o primeiro pacote na ordem de precedência dos repositórios. Versões futuras deverão conter uma opção que force a obtenção do pacote de um repositório específico.
\section{Baixando patches}
Através do parâmetro de configuração \emph{PATCHES\_DIR} é possível especificar uma pasta
onde os patches de cada distribuição serão armazenados, organizados também por arquitetura.
Por exemplo, patches do slackware 10.2 ficarão sempre em
\begin{verbatim}
$PATCHES_DIR/i386/10.2/
\end{verbatim}
Os patches na verdade são baixados através de um \emph{simplaret --get} e armazenados na subpasta de \emph{\$STORAGE} correspondente e apenas um link simbólico é mantido em \emph{\$PATCHES\_DIR/\$ARCH/\$VERSION}.
Para baixar os patches, use uma chamada do tipo
\begin{verbatim}
ARCH=arquitetura VERSION=versao simplaret --get-patches
\end{verbatim}
E os patches dessa arquitetura e versão serão baixados.
\section{Apagando pacotes}
O repositório de pacotes de uma arquitetura e versão pode ser apagado com o comando
\begin{verbatim}
simplaret --purge
\end{verbatim}
\section{Mas pra quê serve isso?}
Você pode estar se perguntando: \emph{quem utilizaria uma ferramenta que baixa pacotes de várias arquiteturas?}
O \emph{simplaret} foi escrito tendo em mente um ambiente \emph{*86} onde várias \emph{jaulas} de diferentes arquiteturas estão instaladas. Suponha por exemplo uma máquina \emph{x86\_64} que possua as seguintes jaulas:
\begin{itemize}
\item slamd64 10.2
\item slackware 10.2
\item slackware 10.1 com pacotes adicionais em \emph{i686}
\item \htmladdnormallink{uSlack}{http://gnuden.sarava.org} (\emph{uClibc para i386})
\end{itemize}
O condenado/a em questão que roda todas essas jaulas, pelos mais diversos motivos, pode ter uma grande dor de cabeça para manter os pacotes em ordem de forma manual. Com o \emph{simplaret} e eventualmente com o \emph{simplepkg}, a tarefa se torna trivial.
\end{document}
|