Adendo ao Genbuntu

19 03 2007

Boas leitores!

Depois de muito tempo sem atualizar, por não ter nenhuma novidade e nenhuma idéia é hora de fazer o adendo mensal (porque é bom atualizar o blog ao menos uma vez por mês)

No final de artigo sobre o Genbuntu ou  “Hibrd Linux Distribution Without Emulation” eu disse que infelizmente os softwares teriam de ser rodados com o root, porém, derrepende não mais que derrepente eu tive uma luz. Como se está usando root, pode-se facilmente trocar de usuário via su ou sudo!

sudo -u <usuário> -s

No meu caso, parar exemplificar, ficar ficaria “sudo -u fcpn -s” o que me dá um console logado no usuário fcpn. Para melhorar ainda mais a história, recentemente eu troquei de HD, e escolhi deixar uma partição para o /home. Montando o home, eu posso compartilhar as configurações entre os sistemas híbridos.

O ideal agora seria criar um script para inicialização, que simplesmente montaria todos os diretórios do script do primeiro artigo, e criar scripts para executar o chroot, trocar de usuário e rodar o software desejado, copiando esses scripts para o /usr/local/bin por exemplo o sistema híbrido fica praticamente transparente ao usuário.

Sem mais, vejo-os no próximo adendo ;  ]





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.