Remasterizando Debian/Ubuntu usando o Remastersys

Olá!

Sempre que tem um lançamento de uma nova versão do Ubuntu em geral é a mesma coisa: fazer backup, baixar o DVD, instalar, configurar repositórios, instalar aplicações adicionais, configurar, etc…
Isso já é um processo irritante em máquinas desktop caseiras que usem apenas aplicações de repositórios, mas as coisas se complicam ainda mais quando você envolve aplicações .deb fora de repositórios e, pior ainda, aplicações que possuem instaladores diferenciados, como Adobe AIR, Firefox e BrOffice.org (quando você os baixa de seus sites). Imagine ainda que você precise fazer instalações de muitas máquinas diferentes. Só por isso você tem uma noção do tempo que se perde ao instalar-se o Ubuntu a cada nova versão do mesmo.
Existem várias formas de criar-se LiveCDs/DVDs que são compatíveis com as mais diversas distros, inclusive por meio de customizações envolvendo o uso de chroot. O problema é que tais métodos não são fáceis e práticos para o dia-a-dia, uma vez que demandam conhecimento e estrutura mais avançados que o normal.
Existe, porém, uma ótima aplicação para Debian e Ubuntu chamada remastersys que permite executar o trabalho de remasterizar, ou seja, criar uma versão customizada do Debian/Ubuntu extremamente fácil, com a grande vantagem de não exigir processos complexos e salvar uma grande quantidade das customizações e informações de sistema do ambiente do usuário.

1-) Por quê customizar?

Ok, essa deve ser sua pergunta agora. Na realidade, existem várias vantagens:

  1. Gerar um pacote previamente configurado com aplicações, configurações e até mesmo aparência ajustada para instalar-se em um grande conjunto de equipamentos. Por exemplo, imagine que você tenha uma empresa e esteja instalando Ubuntu nas estações de trabalho. Ao invés de se dar ao trabalho de configurar uma a uma totalmente, você pode criar pacotes completos de aplicações básicas (pacote office, navegador, etc…) e restringir-se a instalar apenas aquelas aplicações mais específicas de cada estação, poupando tempo e pessoal;
  2. Em Desktops, é útil para criar “pontos de recuperação” em situações onde pode-se potencialmente “quebrar” o sistema (por exemplo, uma atualização ou adição de repositório). Caso algo de errado ocorra, basta-se queimar a ISO da “nova” distro e instalar-se tudo como estava antes.
  3. No caso de (2), quando você está em uma empresa, mesmo essa atividade pode ser custosa em tempo, então você poderá usar uma imagem criada de um desktop para criar uma máquina virtual e testar qualquer alteração necessária (à exceção de coisas como compatibilidade de kernels);
  4. Você pode ter uma espécie de “Estação Portável” que a pessoa poderia usar em Lan Houses ou afins, com as devidas configurações (por exemplo, estabelecer um túnel SSH ou coisas do gênero);

Essas são apenas algumas razões pelas quais você deveria usar o remastersys.

2-) Começando: uma primeira customização rápida e suja

OK, e agora, como customizar?
Primeiro, você deve ter um Ubuntu ou Debian instalado. O remastersys ainda é restrito a sistemas que possuam gerenciamento de pacotes baseados em DPKG/APT.
Segundo, você deve ter instalado todos os pacotes que você deseja, seja via gerenciador de pacotes, seja por compilação ou descompactação. No último caso, é bom lembrar que os pacotes deverão ser adicionados em pastas como /opt e /usr/bin, portanto você precisará de acesso ao superusuário root ou no mínimo ser capaz de executar comandos com sudo.
Primeira coisa, como superusuário, abra um editor de texto de sua preferência e abra o arquivo /etc/apt/source.list. Edite ele conforme indicado no site do remastersys, de acordo com sua distro, seja ela Ubuntu ou Debian. No meu caso, estou usando um Ubuntu Karmic Koala, então inseri as seguintes linhas, conforme indicado para o Ubuntu:

For Karmic, Lucid and Newer with grub2 – version 2.0.13-1 and up

# Remastersys
deb http://www.geekconnection.org/remastersys/repository karmic/

Uma vez que essa linha tenha sido adicionada ao /etc/apt/source.list (ou a linha adequada conforme indicado no site do remastersys), execute os seguintes comandos em um terminal:

sudo apt-get update && sudo apt-get install remastersys

O sistema poderá reclamar a ausência de autenticação do remastersys e ausência de PUBKEY (NO_PUBKEY). Não se preocupe agora: na Internet existem várias formas de resolver-se esse problema localizando-se a PUBKEY do desenvolvedor, então não entraremos nesse momento nesse detalhe. Se ele reclamar a falta de autenticação do remastersys, confirme a instalação. Em alguns instantes, o apt-get instalará o remastersys e suas dependências, definindo também configurações básicas. Por enquanto, aceitaremos elas.
Antes de continuar, é importante que exista espaço adequado nas partições onde ficam os diretórios /tmp e /home. É interessante as partições onde ambas as pastas ficam tenham em torno de 10 GB livres (se ambas estiverem na mesma partição, pode considerar-se por volta de 15 GB). Esses valores não possuem embasamento de documentação ou afins, sendo valores baseados na experiência.
Uma vez que o remastersys esteja instalado, vamos rodar ele. Ele precisa de permissões de super-usuário, portanto iremos usar:

sudo remastersys dist

O remastersys irá iniciar o processo de remasterização baixando pacotes adicionais, como o ubiquity (o programa instalador do Ubuntu), copiar os arquivos necessários e ignorar alguns (como os arquivos de pastas como /home, /tmp, /var e alguns muito específicos da máquina, como /etc/hostname, /etc/fstab e /boot/grub/menu.lst) e compactar eles em um arquivo que na realidade funciona como um filesystem que pode ser montado pela estrutura de LiveCD. Após isso, esse arquivo é juntado aos arquivos de boot básicos do LiveCD e uma ISO é gerada. Nesse momento muito provavelmente a ISO estará em /home/remastersys/remastersys com o nome de customdist.iso (mais para frente veremos como modificar esse nome conforme a necessidade). Copie esse arquivo e o arquivo customdist.iso.md5 que o acompanha (um checksum criado pelo remastersys que pode ser útil para quando o arquivo for enviado via Internet para checar sua integridade). Uma vez que esse arquivo seja copiado para outro local, você pode limpar os arquivos utilizados para a remasterização da do Ubuntu com o comando:

sudo remastersys dist

Você pode queimar a imagem ISO com sua ferramenta de gravação de CD e DVD predileta, independente do sistema operacional. Uma vez gravada a imagem ISO, você poderá rebootar sua máquina e usar ele como LiveCD. No caso, você perceberá que a distro ainda tem aparência de um LiveCD Ubuntu “vanilla” (padrão), mas que as aplicações estarão todas lá, assim como configurações globais do sistema (como listas de repositórios) e afins. Se preferir fazer um teste sem queimar mídia, utilize o VirtualBox para dar boot em uma máquina virtual usando o seu novo LiveCD.
Com isso, já temos um LiveCD útil para muitas coisas, mas podemos melhorar ainda mais isso.

3-) Melhorando as coisas: instalações globais

Uma das melhores formas que existem de melhorar as customizações em uma remasterização é usar instalações globais. Instalações globais dão uma grande vantagem de nos oferecer recursos que, no caso de ambientes multi-usuário, podem ser aproveitados por todos eles e que não precisam de instalação local (lembrando que o remastersys no modo dist, que estamos usando nesse texto, não coppia arquivos do /home).
Quase todos os programas Linux possuem formas de realizar instalações globais de extensões e adicionais. Os ambientes clássicos de Desktop, como KDE e GNOME possuem instalações globais para vários componentes, como fontes e papéis de parede. No caso, não vou me aprofundar em todos os casos, citando apenas algumas que eu testei. Para customizar com instalações globais programas que não serão citados aqui, a Internet está recheada de informações e uma pesquisa rápida no Google irá indicar as mais diversas opções.

Fontes truetype

Essa customização é uma das mais simples e pode ser feita sem necessidade de entrar no terminal. No caso, estarei mostrando o processo usando o KDE. Para GNOME, o processo é similar:
Entre no Centro de Controle do KDE (navegue nos menus normalmente) e vá na opção Administração do Sistema| Instalador de Fontes. Ele irá carregar uma lista com todas as fontes instaladas no sistema. Clique em “Modo Administrador” e na janela que irá aparecer, dê a sua senha (normalmente é uma janela do kdesudo. Se for o kdesu, dê a senha de root). Uma borda vermelha irá se delinear ao redor da área onde está a lista de fontes. Clique em “Adicionar Fontes” e procure o diretório onde estão as fontes a serem instaladas. Selecione-as, dê OK e aguarde alguns instantes. Ele irá copiar as fontes para o diretório /usr/share/fonts/truetype, que é o diretório padrão de fontes do sistema. Todos os programas que forem abertos a partir de então terão acesso a esse pacote completo de fontes.
Caso não esteja usando KDE e/ou prefira fazer isso usando linha de comando, uma sugestão dada na wiki do Ubuntu é a seguinte: vá ao diretório onde está suas fontes e digite os seguintes comandos:

sudo cp *.ttf /usr/share/fonts/truetype
sudo fc-cache -f -v

Com isso, suas fontes estarão habilitadas também!

Papéis de Parede

Papéis de parede são ainda mais facilmente customizáveis: basta como usuário root ou em sudo copiar os arquivos desejados no diretório /usr/share/wallpapers. Apenas tome cuidado para não sobre-escrever nenhuma imagem padrão do ambiente, para não comprometer integridade do sistema.
Se você estiver usando o Kubuntu mais moderno, ou o Debian com KDE 4.0 ou melhor, existe uma pegadinha que pode dificultar ou até mesmo melhorar as coisas:  você pode criar diretórios com os papéis de parede em várias resoluções, o que facilita ajustes de tela sem arquele problema de deformação no papel de parede.
Bem, acho que não existe mais o que falar sobre isso.

Extensões do Firefox

As extensões do Firefox podem ser disponibilizadas globalmente de duas formas diferentes, como pode ser lido no MozillaZine Knowledge Base. Em ambos os casos elas envolvem a cópia de arquivos dentro da pasta /usr/share/mozilla/extensions. A principal diferença é no comportamento final que terá o processo. Se você tiver já configurado o Firefox em um usuário de acordo com suas necessidades, pode ser útil as extensões FEBE e CLEO.

Solução 1: Cópia dos instaladores de extensões

Nesse método, os arquivos serão instalados pelo usuário em sua pasta local na primeira inicialização do Firefox. Nesse caso, o processo é o seguinte:

  1. Baixe as extensões desejadas em seu formato .xpi, os arquivos de instalação das extensões. No caso de as extensões já estarem instaladas em um Firefox de um usuário, utilize a extensão FEBE para realizar um Backup dos arquivos de instalação .xpi das extensões instaladas.
  2. Vá ao diretório onde as extensões .xpi estão guardadas e copie-os para a pasta indicada anteriormente.

A vantagem desse processo é que evita manipulações desnecessárias na estrutura do sistema. Em compensação, torna o processo de atualização do Firefox de maneira global um pouco mais complexo, uma vez que dependerá muito mais da intervenção do usuário.

Solução 2: Cópia das extensões instalada

Esse processo é mais simples, ainda que existam complicadores na usabilidade e/ou na segurança. Uma vez que você tenha configurado corretamente as extensões na pasta local de um usuário, vá ao diretório .mozilla/firefox/<diretorio_profile>/extensions. Se você precisar saber qual é o <diretorio_profile>, abra o arquivo .mozilla/firefox/profiles.ini, localize o nome do perfil desejado (normalmente será o default) e verifique a opção Path da mesma. Dentro desse diretório, use o seguinte comando.

sudo cp -Rvf * /usr/share/mozilla/extensions

Após terminar a cópia, para testar se todas as extensões estão OK, existe um truque: mova temporariamente o diretório .mozilla para mozilla-old com o comando mv .mozilla mozilla-old e execute o Firefox. Se tudo der certo, suas extensões irão aparecer, ainda que você seja obrigado a reconfigurar tudo.

Mas tudo bem: para voltar às suas preferências, faça o seguinte:

  1. remova o diretório .mozilla com rm -rvf .mozilla;
  2. copie o diretório mozilla-old para .mozilla com cp -Rvf mozilla-old .mozilla;
  3. remova o conteúdo da pasta de extensões do usuário com rm -rvf .mozilla/firefox/<diretorio_profile>/extensions/*;

Execute o Firefox. Tudo estando OK, o Firefox estará com as funcionalidades mantidas exatamente como estavam antes do processo. Qualquer coisa, apenas repita o processo mostrado anteriormente à exceção do passo 3 que tudo deve voltar a ser como antes.

Quando falamos sobre o problema na usabilidade e/ou na segurança, deve-se ao fato das permissões de arquivos na estrutra global. Isso ira afetar a localização e instalação de extensões. Nesse caso, existe a opção de deixar o Firefox sem atualizações automáticas, com um usuário sendo atualizado e copiado para as extensões globais com regularidade, ou então por meio da configuração de acesso a escrita às extensões por meio de chmod a+w -Rvf usr/share/mozilla/extensions, Nesse caso, se quiser evitar que algum engraçadinho desinstale as extensões instaladas, você pode usar o comando chmod a+wt -Rvf usr/share/mozilla/extensions, o que irá ativar o sticky bit (bit “colado”), que impede que os usuários apaguem arquivos dentro do diretório das extensões.

Modelos do BrOffice.org

Esse é um tópico que, em especial, será interessante àqueles que estão usando o remastersys para configurar LiveCDs de instalação para máquinas corporativas. Existem algumas formas diferenciadas de instalação global que irá depender do que você deseja.

No caso de apenas copiar alguns poucos modelos, apenas copie os modelos desejados para /usr/lib/openoffice/basis<versao_do_broffice.org>/share/template como super-usuário. Lembrando que os modelos devem estar nos formatos de template OpenDocument (*.ot*).

Já no caso de copiar pastas completas de modelos, existem algumas dificuldades maiores. Mas se for feito com cuidado, é um processo razoavelmente simples.

  1. Copie as pastas de modelos para algum local dentro da hierarquia principal do sistema (sugestões seriam em /usr/share, /usr/local/share e /opt).
  2. Agora, como super-usuário, edite ou crie o arquivo /usr/lib/openoffice/basis<versao_do_broffice.org>/share/registry/data/org/openoffice/Office/Paths.xcu e adicione o seguinte conteúdo nele:

<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Paths" oor:package="org.openoffice.Office">
<node oor:name="Paths">
<node oor:name="Template">
<prop oor:name="UserPaths" oor:type="oor:string-list">
<value>$(user)/template file://<diretorio_das_suas_extensoes></value> </prop>
<prop oor:name="WritePath" oor:type="xs:string">
<value>file://<diretorio_das_suas_extensoes></value>
</prop>
</node>
</node>
</oor:component-data>

Onde <diretorio_das_suas_extensoes> deve ser preenchido com o diretório onde você colocou seus modelos. No caso de vários diretórios diferentes, adicione cada um dos diretórios precedidos por file:// nas duas partes (UserPaths) e (WritePath)

Atenção: Caso você edite manualmente esse arquivo, copie o seu arquivo em outro. Caso o BrOffice.org não “suba”, abra novamente o arquivo, copie o conteúdo original do arquivo e tente novamente.

Para saber se está tudo bem, abra o BrOffice.org, vá em Arquivo | Novo | Modelo e Documentos, Na página “Modelos” a sua pasta deve aparecer e os arquivos de modelos deverão estar lá!

OK… Vamos falar apenas desses casos: execute novamente remastersys dist e sua distro deverá estar melhor ainda ao abrir um Mozilla, suas extensões deverão estar lá (ainda que sem configurações), assim como Templates do BrOffice.org e afins.

Mas dá para melhorar ainda mais um tanto, deixando a cara do boot da sua “distro” mehor ainda:

3-) Dando a sua cara: usuário “padrão”

No caso, agora vamos com calma. Tudo começa com você criando um usuário adicional “limpo” que você irá usar para customizar totalmente as opções do ambiente. No nosso caso vamos criar um usuário mykubuntu. Na linha de comando dê o comando sudo adduser mykubuntu, Dẽ uma senha, confirme-a e as demais informações podem ficar em branco.

Agora, saia do seu usuário normal e logue-se como mykubuntu. Ao entrar no ambiente, comece a customizar o ambiente conforme a necessidade, configurando papel de parede, fontes, temas, configurações de extensões do Firefox, etc… Desse modo, você vai ter uma espécie de “modelo” que você irá usar para criar a cara do usuário “padrão” da sua “distro” remasterizada. As customizações podem envolver o que você achar adequado (adicionar ícones, customizar aparência, adicionar Widgets, etc…). Uma vez que você se dê por satisfeito, deslogue-se e retorne ao seu usuário normal.

Uma vez que você tenha logado, abra um terminal e use o comando sudo -s, para abrir um shell de root. Uma vez feito isso, você precisará copiar os arquivos do diretório do usuário criado (no nosso caso mykubuntu) para dentro do diretório /usr/skel. Além disso, será necessário configurar a posse dos arquivos. No caso, digite os comandos abaixo:

cp -Rvf /home/mykubuntu/* /etc/skel

chown root:root -Rvf /etc/skel

Com esses dois comandos, você coloca os arquivos dentro de /etc/skel, um diretório usado para criar diretórios padrão de usuário. Como isso é copiado para os diretórios padrão de usuários, existe a vantagem adicional de permitir-se que definições padrão sejam adicionadas, o que oferece ganhos para aquele que deseja utilizar o remastersys para customizar um Debian/Ubuntu para uso corporativo e também para “Estações Virtuais”.

Como pode-se ver, o remastersys é uma ferramenta de altíssimo nível que, apesar de simples, oferece muitíssimas opções, e que, combinada com conhecimentos simples e pesquisas no google, oferece possibilidades muito interessantes para o usuário, tanto caseiro quanto corporativo. Espero que esse documento tenha sido do agrado de todos os leitores.

sudo remastersys dist

Sobre Fábio Emilio Costa
Linux, Free Software, EMACS, Rugby, Indycar, Doctor Who, Harry Potter... Yep, this is me!

7 Responses to Remasterizando Debian/Ubuntu usando o Remastersys

  1. Deusdará disse:

    Olá

    Você menciona que vai mostrar como personalizar através da remasterização do Ubuntu e Debian usando o programa Remastersys.

    É por demais sabido que o Remastersys foi desenvolvido para fazer uma ISO personalizada somente do Ubuntu.
    Para as demais variantes do Ubuntu é necessário fazer algumas adaptações.

    Para o Debian é necessário fazer algumas modificações para que a ISO gerada funcione.
    E você não alerta usuário do Debian sobre estas modificação.

    Atenciosamente

    Deusdará

  2. Haroldo Barbosa disse:

    Interessante e válida a dica. Uma outra alternativa é o Mondo.

  3. emerson torres disse:

    Boa noite, fiz uma instalação do ubuntu 10.04 e estou tentando gerar um DVD utilizando o remastesys para instalar em outras maquinas aqui na empresa, porém, quando inicio o dvd ele não me dá a opção para instalar o sistema operacional na máquina, ou seja, só consigo utilizar essa minha instalação padrão como live. O que estou fazendo de errado?

    Atencisamente

    Emerson Torres

    • Olá!

      Eu tive esse problema com uma remasterização pessoal que fiz. Vou dar algumas sugestões do que pode acontecer e qualquer coisa, dá uma olhada nos fóruns do remastersys:

      1-) Tenta gerar novamente após atualizar a “máquina exemplo”. Percebi que tive um problema em uma remasterização e depois consegui remasterizar normalmente após atualizar recentemente minha máquina.

      2-) Verifique se no /etc/apt/sources.list você colocou para a linha do remastersys apontando para a versão “lucid”. Lembre que estou usando “karmic” (estou partindo do Karmic Koala – 9.10);

      3-) Tente fazer uma remasterização a partir de uma máquina limpa;

      4-) Verifique se você está usando os drivers proprietários da nVidia ou da ATI na “máquina exemplo”. Se for o caso, remova-os, pois pesquisei nos fóruns que os drivers proprietários provocam problemas no sistema;

      Como sugestão, antes de levar o sistema para produção teste a ISO usando o VirtualBox ou uma máquina de laboratório até que fique satisfeito.

      Obrigado pela atenção.

      Em 15-07-2010 19:25,

  4. Terramel disse:

    Eu usei o Remastersys sem problemas no Linux Mint. Até postei sobre a distro que fiz, chamada de Terramint.

    Ah, to passando aqui pra te convidar pra migrar seu blog para o meu portal, o Galacta. Lá você pode ter perfil com seu blog, amigos, grupos e fóruns, criar albuns de fotos, enviar mensagens privadas etc. Se quiser, me manda um e-mail ou comenta la no meu blog. Se quiser também te ajudo com a migração e instalo o tema de wordpress que você quiser.

    BTW: Excelente seu post. Eu quando escrevi sobre Remastersys, não escrevi tão bem e tão detalhadamente como você. Parabéns!

    Abraços
    do Terrinha

  5. rencka disse:

    Saudações camarada!
    Gostei muito de seu Blog !
    Continue assim, simples, humilde e honrado !
    Te encontro no Ano que ven no CP ou no Flisol de S.André ( sinta-se convidado, te espero lá)!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s