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

\title{Rodando o OpenOffice.org em chroot no Slamd64}
\author{Silvio Rhatto}

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

\begin{abstract}
Muitos usuários de máquinas 64 bits já devem ter percebido que o \htmladdnormallink{OpenOffice.org}{http://www.openoffice.org.br/} pipoca frequentemente e em certos sistemas não reconhece locale, tem problemas com mapas de teclado e trava durante seleções do texto, mesmo se as bibliotecas em 32 bits estiverem corretamente instaladas.

Conforme sugerido no \htmladdnormallink{Debian GNU/Linux AMD64 HOW-TO}{https://alioth.debian.org/docman/view.php/30192/21/debian-amd64-howto.html}, esse tipo de problema pode ser resolvido criando-se um chroot com userland 32 bits, a partir de onde é possível rodar todos os aplicativos em 32.
\end{abstract}

\section{Introdução}

O que faço aqui é apenas adaptar em linhas gerais o que é preciso para ter um chroot desse tipo no seu Slamd64 para que um usuário comum do sistema possa executar o OpenOffice.org de dentro de um chroot de forma transparente, algo que pode ser usado também para outros aplicativos, como por exemplo para rodar um \emph{mplayer} em modo 32 com todo aquele monte de codec.

Esta versão do tutorial não contém os scripts utilizados. Se você quer ver uma sugestão para os mesmos, consulte a \htmladdnormallink{versão inicial}{/node/3?revision=0} deste documento. A \htmladdnormallink{segunda revisão}{/node/3?revision=0} contém mais passos manuais para a criação da jaula e esta versão contém apenas o procedimento para ser efetuado via \htmladdnormallink{simplepkg}{/node/12}.

\section{Instale o OpenOffice.org}

Para tudo ficar mais transparente, o OpenOffice.org será instalado de fora do chroot. Instale-o onde você preferir. Neste tutorial, assumimos que sua instalação está em \emph{/opt/OpenOffice.org}. Existem pacotes prontos para slackware no sítio do \htmladdnormallink{BrOffice.org}{http://www.broffice.org/}, mas com a instalação do pacote padrão também funciona, assim com também outras versões do OpenOffice.org para 32 bits.

\section{Crie a jaula para o OpenOffice.org}

Considerando que seu \htmladdnormallink{simplepkg}{/node/12} esteja instalado e configurado para usar o \emph{simplaret}, basta o seguinte comando para a criação da jaula:

\begin{verbatim}
ARCH=i386 VERSION=10.2 ROOT=/mnt/disco/usr mkjail slack32 openoffice
\end{verbatim}

Se os pacotes do Slackware 10.2 estiverem disponíveis pelo \emph{simplaret}, sua jaula em 32 bits com todas as dependências necessárias será instalada em \emph{/usr/slack32}.

O template \emph{openoffice} já copia suas entradas de usuário do sistema para a jaula, para que o esquema de permissões seja preservado.

\section{Pacote openoffice-chroot}

O único pacote não oficial que utilizaremos é o \emph{openoffice-chroot}, disponível em nosso repositório \htmladdnormallink{noarch}{/packages/noarch}. É preciso que você o instale tanto no seu sistema principal quanto na jaula:

\begin{verbatim}
installpkg openoffice-chroot*tgz
installpkg -root /usr/slack32 openoffice-chroot*tgz
\end{verbatim}

Esse pacote é composto por apenas três que scripts detectam qual sistema o usuário está rodando -- para o caso de você desejar um diretório pessoal independente do sistema que o usuário estiver usando, slack ou slamd64 -- e a partir disso chama o OpenOffice.org da jaula ou do sistema principal.

\section{Tornando suas pastas disponíveis dentro da jaula}

Para que seu sistema chroot seja habitável, vamos montar com a opção \emph{-o bind} algumas de suas pastas, para que parte do seu sistema seja acessado de dentro da jaula.

\begin{verbatim}
  proc               /usr/slack32/proc         proc        defaults                 0   0
  /home              /usr/slack32/home         none        bind                     0   0
  /opt               /usr/slack32/opt2         none        bind                     0   0
  /tmp               /usr/slack32/tmp          none        bind                     0   0
  /var/tmp           /usr/slack32/var/tmp      none        bind                     0   0
\end{verbatim}

\section{Permissão para execução de chroot}

Como por padrão usuários comuns não tem permissão de executar \emph{chroot}, precisaremos de algumas entradas no sudoers do seu sistema. Edite o \emph{/etc/sudoers} com o comando \emph{visudo} e adicione:

\begin{verbatim}
  Cmnd_Alias OFFICE=/usr/bin/openoffice-chroot
  usuario ALL=NOPASSWD: OFFICE
\end{verbatim}

onde \emph{usuario} é o nome do usuário que terá poder de execução do OpenOffice.org dentro da jaula. Adicione uma linha dessas para cada usuário do seu sistema que precise rodar o aplicativo em chroot.

\section{Configuração do usuário}

Os scripts do pacote \emph{openoffice-chroot} precisam de alguns parâmetros de cofiguração. Para isso, crie na pasta do usuário o arquivo \emph{.openoffice32} contendo o seguinte:

\begin{verbatim}
chroot_script="/usr/bin/openoffice-chroot"
office="/opt/OpenOffice.org/program"
chroot="/usr/slack32"
wrapper="/usr/bin/openoffice-wrapper"
\end{verbatim}

\section{Usando o OpenOffice.org em chroot}

Reinicie o computador. Depois, para rodar o OpenOffice.org Writer, basta que o usuário dê o comando:

\begin{verbatim}
openoffice32 swriter
\end{verbatim}

Você ainda pode passar mais argumentos ao programa:

\begin{verbatim}
openoffice32 scalc planilha.sxc
\end{verbatim}

\section{Adicionando um novo usuário na jaula}

Para adicionar mais usuários na brincadeira do chroot, basta criar:

\begin{itemize}
\item uma entrada no \emph{/etc/sudoers}
\item uma entrada no \emph{/usr/slack32/etc/passwd}
\item o arquvio \emph{.openoffice32} na pasta do usuário
\end{itemize}

\section{Observações}

O acesso a cdrom e disquete não funciona direito dentro do chroot, já que estes são pontos de montagem dinâmicos.

\end{document}
