Genbuntu

18 12 2006

Introdução

Ao final desse ano serão praticamente 7 anos de experiências, boas e ruins, com linux. Primeiro contanto, foi com o conectiva, que estava em uma das suas primeiras versões, 3.0 se não me engano, fascinado com todo esse mundo novo, novas interfaces, novos softwares migrei para o Slackware, por onde fiquei cerca de 6 ou 5 anos, mas por sua falta de tempo e pelo gosto do Patrick, resolvi, depois de fazer residência no Slack, trocar de distribuição.

Descobrindo novos mundos
(sem flames!)

Como toda crise comecei a testar outras distribuições procurando por alternativas mais práticas. O Debian, foi a primeira distribuição que não consegui me adaptar bem, mas a facilidade de manter o sistema me agradou, e muito. O apt-get (aptitude) é simplesmente fantástico. Ubuntu é ubuntu, mas serve. Finalmente ao final da minha jornada, encontrei o Gentoo, desempenho fantástico, mas a mantenibilidade do sistema é impraticável.

Por mais que eu tentasse manter meu sistema up-to-date não conseguia, sempre novas atualizações, algumas delas travaram toda a atualização do sistema, e por ai vai. Assumo que não me dediquei o suficiente para achar soluções para os updates quebrados. Resolvi então achar outra solução. Precisava de facilidade e, uma vez usuário gentoo, desempenho.

Eis que surge a idéia do Genbuntu! Que seria uma base do sistema compilada, gerada pelo gentoo+emerge e programas menos utilizados, que não necessáriamente precisariam de um desempenho grande, executados no ubuntu mas pelo gentoo. Com certeza existem N outras soluções para esse “problema” mas resolvi abordar dessa forma. Usando o que aprendi na instalação do gentoo, escolhi instalar o Ubuntu e usar o chroot para trazer para o gentoo os softwares instalados no Ubuntu.

Mão na massa

Na primeira tentativa, usei simples e cru:

chroot /mnt/ubuntu /bin/bash

A intenção era conseguir um bash logado no ubuntu. Sucesso, basicamente era exatamente isso que eu precisava, mas várias coisas não estavam funcionando direito. Depois de alguma pesquisa “escrevi” um pequeno script que me dá um terminal funcional do Ubuntu dentro do Gentoo, a partir deste posso rodar qualquer coisa dentro do ubuntu estando no Gentoo.

mount -t proc none /mnt/ubuntu/proc
mount -o bind /dev /mnt/ubuntu/dev
mount -o bind /sys /mnt/ubuntu/sys
mount -o bind /tmp /mnt/ubuntu/tmp
chroot /mnt/ubuntu /bin/bash

Com agora a base do sistema (/dev /proc /sys e /tmp) replicada em ambos os pontos montados “/” e “/mnt/ubuntu”, podia fazer praticamente qualquer coisa no ubuntu que o mesmo funcionava perfeitamente, faltava então conseguir exibir os softwares rodados no ubuntu no Xorg do gentoo. Usando o xhost, liberei o acesso a mim mesmo em meu X, exportando os /dev/pts consegui finalmente fazer um sistema híbrido com ambas as distribuições rodando ao mesmo tempo. A versão final do script ficou:

#!/bin/bash
mount -t proc none /mnt/ubuntu/proc
mount -o bind /dev /mnt/ubuntu/dev
mount -o bind /sys /mnt/ubuntu/sys
mount -o bind /tmp /mnt/ubuntu/tmp
mount -o bind /dev/pts /mnt/ubuntu/dev/pts
cp /home/fcpn/.Xauthority /mnt/ubuntu/root/
cp /home/fcpn/.Xauthority /mnt/ubuntu/home/fcpn/
xhost +local:root
chroot /mnt/ubuntu /bin/bash
xhost -local:root

O único inconveniente é ter que executar tudo no ubuntu como root. Porém dai por diante, só a criatividade é o limite, com o chroot é possível executar qualquer comando chroot /mnt/ubuntu xmms ou qualquer outra coisa que você queira.

emerge + aptitudeSynaptic

Conclusão

Agora posso fácilmente posso manter meu sistema atualizado, mantendo a base do sistema com alto desempenho e sólida, e nesse esquema de sistema híbrido pretendo ficar um bom tempo. Talvez fazer nova residência no gentoo.

Até mais, Fábio.