企鵝,蘋果,遊戲及其他藥物
Instalando e usando multiplas distros ao mesmo tempo
O problema :
Antigamente ter um hardware apple rodando linux era trivial, tirando o modem todo o resto subia sem qualquer dificuldade. Com a troca de arquitetura de PPC para i386 é provavel que os developers tenham abandonado o linux pois apesar do hardware do mac ser muito parecido com o dos PCs, quase nada vem funcionando “de graça” …
O Fedora que tinha um suporte fantástico aos macs PPC não presta para macs-intel e fiquei na mão … Depois de perder um tempão com o Archlinux , não quis arriscar com o gentoo, apelei e coloquei opensuse … wow, funcionou quase tudo de primeira, e decidi manter a distro pelo seu ótimo suporte ao meu hardware.
Mas como o mundo é injusto , tive que instalar programas e bibliotecas exotéricas , que exigem versões velhas de outras bibliotecas mais extravagantes ainda, e como essas coisas são desenvolvidas em debian e para debian, naturalmente sequer compilavam no opensuse. Quando quase estava instalando debian na máquina meu debianita favorito @kov reforçou uma idéia que eu já tinha descartado, a do chroot.
Chroot significa change root , ou seja ele altera o diretório “/” de uma instância do shell, isso permite que eu mude meu shell de distribuição sem ter que rebootar a máquina. Melhor que isso, em paralelo, e quantas forem necessárias… O comando é simples :
chroot /dir /bin/bash
Onde “/dir” é o diretório onde eu tenho minha distro alternativa …
Para resolver meu problema, precisava de um debian no meu opensuse, fiz o seguinte …
A solução :
Primeiro precisei instalar uma distro, como não uso debian (ou demais variantes) não tenho acesso ao debootstrap, ferramenta usada para criar subdistros debian … Pra não ter que instalar a distro em uma partição física da máquina, peguei um template de distro desses usados em máquinas virtuais , no caso os do openvz, clicando aqui . Baixei um tar do debian lenny i386 com uns 200 mb mais ou menos.
Feito isso, criei um diretório chamado /opt/debian, e descompactei a mini distro debian lá dentro usando tar -xzvpf , note que o “p” nesse comando é importante para criar os links, sockets, e manter as permissões.
Assim basta usar o comando chroot /opt/debian /bin/bash para entrar em sua sub-distro, pronto né ? Não ! Tem uns pequenos detalhes pra resolver.
Internet e rede
Para que seu sistema alternativo tenha acesso à rede e internet você deve criar/editar o arquivo (dentro do ambiente chrooted) /etc/resolv.conf , por exemplo :
nameserver 4.2.2.1
nameserver 4.2.2.2
Com isso você já pode fazer um apt-get update/upgrade
Suporte ao hardware
Até aqui, a distro alternativa não tem acesso aos devices do sistema principal, como partições , cameras , pendrives etc… Para habilitar esses recursos saia do ambiente chrooted (Control + d) e use esses dois comandos simples :
mount -o bind /proc /opt/debian/proc
mount -o bind /dev /opt/debian/dev
Com isso o debian alternativo terá acesso ao hardware da mesma forma que a distro principal, inclusive com poder de formatar e destruir tudo ![]()
Suporte ao X
Suporte ao X não se faz apenas com /dev e o /proc habilitados, tem que liberar o acesso ao Xserver à partir do cliente X (ou seja de um terminal qualquer do seu usuário normal) com o comando xhost + . Como root (da distro principal) você deve “montar” a partição /tmp dentro do ambiente chroot :
mount -o bind /tmp /opt/debian/tmp
Agora o debian alternativo tem acesso ao soquete do X . Falta só dentro do chroot executar export DISPLAY=:0.0 agora tudo que vc abrir à partir do chroot vai abrir no X normal da sua distro principal =)
Para facilitar minha vida , criei 2 scripts que automatizam esse processo para mim, com apenas dois comando entro no meu chroot e começo a usar como num terminal comum. Se alguém quiser eu disponibilizo.
about 7 months ago
Aqui no Fedora fiz o seguinte:
# mkdir /opt/debian
# DEBIAN=/opt/debian
# export fuckthe=”mount -o bind”
# fuckthe /sys $DEBIAN/sys
# fuckthe /proc $DEBIAN/proc
# fuckthe /dev $DEBIAN/dev
# fuckthe /tmp $DEBIAN/tmp
# yum -y install debootstrap
# debootstrap –arch i386 lenny /opt/debian ftp://debian.das.ufsc.br/pub/debian/
# chroot $DEBIAN /bin/bash
# export DISPLAY=:0.0
# dhclient eth0
Só.
Pode trocar o arch por outro como ppc se quiser.
Me baseei no seu post pra procurar na internet uma forma mais fácil de fazer isso. Foi útil para rodar o ambiente de desenvolvimento do mamona direito no fedora…
Do jeito que você fez eu tive que fazer um monte de confs pra funcionar os locales e a utilidade de criar usuários normais afim de deixar o sistema longe do /dev/ :O
Rodando o debootstrap configura o sistema direitinho.
about 7 months ago
No outro pc funcionou com um simples:
# yum -y install debootstrap
# debootstrap –arch i386 lenny /opt/debian ftp://debian.das.ufsc.br/pub/debian/
# chroot debian /bin/bash
about 7 months ago
No opensuse não achei o debbootstrap , e da forma como demonstrei é possivel fazer o mesmo com qualquer distribuição, por isso achei que valia o post.
Não tive a preocupação de deixar o sistema embutido longe do /dev pq assumi que o leitor sabe o que esta fazendo, e sabe que não é virtualização
De qualquer forma da pra usar como usuário non-root bastando exportar o /home com o bind e criar a entrada correta no /etc/passwd da distro secundária.
Lembrando que se substituir o i386 por PPC em uma máquina intel vai dar tela azul
Seria lindo se existisse DISTRObootstrap para todas as distros ,mas infelizmente só tem pra debian, ubuntu e fedora…. Tem fedorabootstrap , mas quero distância do fedora até o suporte de 2 anos chegar.
about 7 months ago
Você pode fazer o que eu fiz aqui da primeira vez, descobri só depois que tinha no repositório do fedora.
Mas tipo, baixei o debootstrap.deb mesmo e descompactei. Depois movi o script pra /usr/sbin e executei de boa. Só na minha segunda máquina que fui rodar o yum -y install debootstrap ;P
(Mal de slackuser)
Estou usando o Fedora aqui desde dezembro.
Fiz a seguinte gambiarra quando lançou versão nova:
# yum clean all ; rpm -Uvh http://download.fedora.redhat.com/pub/fedora/linux/releases/11/Fedora/i386/os/Packages/fedora-release-11-1.noarch.rpm ; yum -y upgrade ; reboot
Na teoria não deveria funcionar, a equipe de desenvolvimento condena e diz que pode quebrar fudido o sistema, mas não deu nada que eu não pudesse resolver com um reinstall dos pacotes que estavam dando problema. O sistema está solid aqui e inclusive ficou até mais rápido quando atualizou. Tentarei o mesmo com o Fedora 12.
about 7 months ago
Então, boto fé que da pra instalar o debootstrap em qualquer distro, mas rodar o debian é o menor dos meus problemas, eu quero slack, gentoo, gobo linux, mandriva sacou ? E não tem slackbootstrap, gentoobootstrap etc… pra cada distro deve existir um estratégia diferente, este post botou todo mundo no mesmo saco. Eu postei do jeito mais dificil pq resolve o problema em qualquer distro para qualquer distro.
Já o fedora , não da pra confiar nele pra servidor, não posso me dar ao luxo de fazer um upgrade com yum e correr o risco de passar 3 dias resolvendo pacotes quebrados pra ter o sistem de emails do cliente funcionando. Sei que existe um system-upgrade mas ele é (ou era) gráfico ! Como vou rodar isso num VPS ? E o fedora não foca muito no desktop, fico totalmente na mão do rpmfusion e sou obrigado a criar repositórios gigantes pra me antender, coisa que ainda não tive que fazer no opensuse.
Fedora pra mim só pra workstation, e server quando ele amadurecer mais