\documentclass{article}
\usepackage[brazilian]{babel}
\usepackage[latin1]{inputenc}
\usepackage[dvips]{graphics}
\usepackage{hyperref}
\usepackage{html,makeid}

\title{Simplive: distro live com simplepkg}
\author{Silvio Rhatto}

\begin{document}\label{start}
\maketitle

\begin{abstract}
No artigo do \htmladdnormallink{simplepkg}{/node/12}, mostrei como criar templates de instalação em distribuições slackware. Para tornar a vida ainda mais simples, que tal construirmos um DVD live com todos os pacotes, templates e eventualmente um pequeno backup do seu sistema para ser usado como disco de restauro de uma máquina?

Para isso, usaremos o \htmladdnormallink{SLAX}{http://slax.linux-live.org} como distribuição live, que por ser baseada em slackware facilita muito o trabalho. Na nossa remasterização do SLAX, copiaremos para a imagem do cd todos os nossos templates de instalação e pacotes usados.

O procedimento abaixo é apenas uma sugestão. A cópia dos arquivos e os locais dos pacotes são apenas sugestões.
\end{abstract}

\section{Baixando o SLAX e seus módulos}

Queremos um sistema live que seja pequeno para que nossa mídia tenha espaço para os pacotes. Por isso, baixe o SLAX Frodo, que contém apenas o sistema básico. Você ainda precisará dos \htmladdnormallink{módulos}{http://slax.linux-live.org/modules.php}:

\begin{itemize}
\item \htmladdnormallink{rsync}{http://slax.linux-live.org/modules.php?category=console&id=262&name=rsync}, que pode ser baixado no site do SLAX
\item simplepkg, cujo link se encontra no fim desta matéria
\end{itemize}

\section{Copiando o sistema live}

Após baixar o SLAX, vá para sua pasta de trabalho e copie a árvore do iso:

\begin{verbatim}
mkdir simplive slax
mount -o loop slax-frodo-5.0.8.iso slax/
cp -R slax/* simplive/
umount slax/ && rmdir slax
\end{verbatim}

Agora temos um sistema SLAX limpo e pronto para personalização.

\section{Copiando os módulos}

Os módulos que serão carregado quando o live cd for iniciado são armazenados na pasta \emph{modules}, então mova os módulos que você baixou:

\begin{verbatim}
mv {simplepkg,rsync}*mo simplive/modules
\end{verbatim}

\section{Criando os repositórios}

Copie todos os repositórios que você utiliza para a árvore do simplive. Neste exemplo, deixaremos na pasta \emph{distros/} as árvores oficiais e em \emph{packages/} os repositórios não-oficiais.

Primeiramente, os pacotes não-oficiais:

\begin{verbatim}
cd simplive
mkdir packages distros
rsync -av --exclude=.svn /onde/estao/seus/pacotes/ packages/
\end{verbatim}

Usei o rsync com \emph{--exclude=.svn} porque no meu caso os pacotes estavam em repositórios do subversion. Você pode usar o comando da sua preferência. Em seguida, copiaremos as distribuições oficiais, cujos pacotes podem ser retirados das respectivas imagens de instalação. Neste exemplo, copiaremos os pacotes oficiais do slackware e do slamd64, considerando que os cds ou imagens de instalação estão montandos em pastas do seu \emph{/mnt}:

\begin{verbatim}
rsync -av /mnt/slamd64-1/ distros/slamd64-10.2-1/
rsync -av /mnt/slamd64-2/ distros/slamd64-10.2-2/
rsync -av /mnt/slackware-1/ distros/slackware-10.2-1/
rsync -av /mnt/slackware-2/ distros/slackware-10.2-2/
\end{verbatim}

\section{Configurando o simplepkg}

Uma vez copiados todos os repositórios, é preciso adicionar todos os seus templates e configurar as definições de repositórios do simplepkg. Partiremos então da sua pasta atual do simplepkg:

\begin{verbatim}
cp -R /etc/simplepkg rootcopy/etc/
\end{verbatim}

Edite então o \emph{simplepkg.conf} que irá para o cd live. Recomendo usar o seguinte:

\begin{verbatim}
# /etc/simplepkg/simplepkg.conf
JAIL_ROOT="/mnt" # where jails are placed
SIMPLARET="simplaret" # package grabber program (can be swaret if you have it installed)
SIMPLARET_CLEAN="1" # clean package cache before installation
SIMPLARET_DELETE_DOWN="1" # clean package cache after the installation
SIMPLARET_UPDATE="1" # issue an simplaret --update before install the jail
SIMPLARET_PURGE_WEEKS="3" # delete packages older than N weeks from the cache
PATCHES_DIR="/var/simplaret/patches" # where patches are placed
DEFAULT_ARCH="i386"
DEFAULT_VERSION="10.2"
STORAGE="/var/simplaret"
PASSIVE_FTP="1"
\end{verbatim}

Não esqueça de ajustar \emph{DEFAULT\_VERSION} e \emph{DEFAULT\_ARCH} de acordo com suas preferências. Em seguida, ajuste o \emph{repos.conf} de acordo com o esquema de repositórios do live-cd. No nosso caso temos:

\begin{verbatim}
# i386
REPOS-i386-10.2="slack.sarava.org%file:///mnt/cdrom/packages/slackware/slackware-10.2/"
REPOS-i386-10.2="slack.sarava.org-noarch%file:///mnt/cdrom/packages/noarch/"
REPOS-i386-10.2="slackware-10.2d1%file:///mnt/cdrom/distros/slackware-10.2-1/"
REPOS-i386-10.2="slackware-10.2d2%file:///mnt/cdrom/distros/slackware-10.2-2/"

# x86_64
REPOS-x86_64-10.2="freerock64%file:///mnt/cdrom/packages/freerock64"
REPOS-x86_64-10.2="slamd64-10.2d1%file:///mnt/cdrom/distros/slamd64-10.2-1/"
REPOS-x86_64-10.2="slamd64-10.2d2%file:///mnt/cdrom/distros/slamd64-10.2-2/"
REPOS-x86_64-10.2="slack.sarava.org%file:///mnt/cdrom/packages/slamd64/slamd64-10.2/"
REPOS-x86_64-10.2="slack.sarava.org-noarch%file:///mnt/cdrom/packages/noarch/"
\end{verbatim}

Como você deve ter observado, não estamos utilizando definições de \emph{ROOT}, mas apenas de \emph{REPOS}.

\section{Configurações adicionais}

Seu \emph{simplive} está praticamente pronto. Para que ele funcione logo após o boot, temos ainda que ajustar o \emph{rc.local} da distro:

\begin{verbatim}
mkdir -p rootcopy/etc/rc.d
touch rootcopy/etc/rc.d/rc.local
chmod +x rootcopy/etc/rc.d/rc.local
\end{verbatim}

Nesse arquivo, adicione o seguinte:

\begin{verbatim}
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
simplaret --update
\end{verbatim}

Se você quiser, adicione também seus arquivos pessoais e de backup em alguma pasta do cd, como por exemplo em \emph{backups}.

\section{Remasterizando}

Agora falta apenas masterizar nosso live cd. Faremos isso \emph{http://slax.linux-live.org/doc_customize.php#modifyiso}{da maneira do SLAX}.

\begin{verbatim}
./make_iso.sh /tmp/simplive.iso
\end{verbatim}

\section{Usando o simplive}

Agora é só queimar um cd ou dvd do seu simplive e começar a brincadeira. Experimente criar um template que reflita exatamente a configuração da sua máquina e tente fazer uma reinstalação numa partição vazia. Assim, o simplive pode ser uma solução definitiva para o problema do backup do seu sistema!

\section{Observações}

\begin{itemize}
\item Se você for instalar jaulas com muitos pacotes, você precisará ajustar no \emph{simplaret.conf} o valor \emph{STORAGE} para uma partição ou pasta que contenha espaço livre suficiente para desempacotamento.
\item Usar um sistema live em 32 bits para instalar aplicativos em 64 pode ocasionar erros nos scripts de instalação de cada pacote, já que o \emph{chroot} da distro não conseguirá entrar na jaula. Nesse caso, o melhor a fazer é criar um sistema em 64 bits com os scripts do projeto \htmladdnormallink{linux-live}{http://www.linux-live.org/}, que precisam de algumas adaptações para funcionar numa plataforma diferente de \emph{i386}; se preferir, crie um livecd simples usando uma \emph{initrd} grande em \emph{x86\_64} com pacotes básicos do sistema e acesse os demais arquivos montando o cd.
\end{itemize}

\end{document}
