\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}