sexta-feira, 17 de dezembro de 2010

Guia rápido de instalação do Exherbo

Sobre o Exherbo:
  • Distribuição Linux com configuração "up-front". Configuração up-front significa que você define anteriormente o que terá em tarefas administrativas, tais como instalação de pacotes e atualizações.
  • Desenvolvimento descentralizado feito apropriadamente. Nós facilitamos o uso de repositórios não-oficiais bem como os oficiais.
  • Para desenvolvedores - nós esperamos que os usuários participem do processo de desenvolvimento. No primeiro ano nós tivemos mais de 70 contribuintes adicionando pacotes aos nossos repositórios, desenvolvendo nosso website e iniciando novos projetos diretamente relacionados ao Exherbo. O número de usuários é estaticamente crescente bem como a qualidade das contribuições.
  • Usa alguns bits de código e algumas idéias, de outros projetos opensource, mas a maioria do código é original, "não-fork". Exherbo usa algumas ideias de outros projetos opensource mas são as nossas idéias que diferem e definem o Exherbo.
  • Usa o gerenciador de pacotes Paludis com uma EAPI personalizada. Paludis é um gerenciador de pacotes rápido e flexível que nos permite adicionar rapidamente novas funcionalidades voltadas específicamente para o Exherbo. Muitas das funcionalidades que definem o Exherbo são baseadas no Paludis e na forte cooperação entre os desenvolvedores do Paludis e do Exherbo.

Porquê.
  • As nossas ideias são muito diferentes das outras distribuições e é muito mais fácil não ter que lidar com brigas sobre código legado e ideias.
  • Nós precisamos da liberdade para "quebrar coisas" quando precisarmos :-)

Metas.
  • Todas as nossas metas são elaboradas de modo que seja difícil de usá-las como slogans para justificar estupidez.
  • O usuário alvo sabe o que está fazendo.
  • Encorajar usuários a tomar parte no processo de desenvolvimento e suportá-los com bom feedback por suas contribuições.
  • Nenhuma interatividade necessária. Comportamento repetitivo e controlado com configuração up-front.
  • Flexibilidade onde faz sentido haver flexibilidade.
  • Nenhuma centralização geral. Apenas os pacotes utilizados abertamente estão nos repositórios principais, e fazer ferramentas boas o bastante para lidar com muitos repositórios pequenos de terceiros para outros aplicativos aleatórios.
  • Disponibilizar funcionalidades que as outras distribuições consideram muito ambiciosas.

Instalação

Exherbo não recomenda nenhum tipo de arquivo em particular ou procedimentos de instalação além do exemplo simples a seguir. Você pode personalizar o processo da maneira que desejar desde a escolha do tipo de arquivos a instalações mais avançadas incluindo LVM2 ou instalações sem disco.

1. Leia a documentação.
2. Inicializar um sistema live.

Faça o download do SystemRescueCD (suporta tanto 64 quanto 32 bits):

# links http://www.sysreccd.org/Download

Copie para um CD ou use Unetbootin para copiá-lo para um pendrive bootável.

Reinicie a máquina, selecione o kernel apropriado, e prepare sua rede:

# net-setup wlan0

3. Prepare o disco rígido.

Crie uma partição para boot (~16MB), uma partição root (>=4GB), e uma partição home:

# cfdisk /dev/sda

Formate o sistema de arquivos em cada partição:

# mkfs.ext2 /dev/sda1
# mkfs.ext3 /dev/sda2
# mkfs.ext3 /dev/sda3


Monte root e faça cd para dentro dele:

# mkdir /mnt/exherbo && mount /dev/sda2 /mnt/exherbo && cd /mnt/exherbo

Pegue o mais recente arquivo de estágio (stage) em http://dev.exherbo.org/stages/:

# wget http://dev.exherbo.org/stages/exherbo-amd64-current.tar.xz |tar xpf -

Atualize o fstab:

# cat << eof> /mnt/exherbo/fstab
# 				

/dev/sda1 /boot ext2 defaults 1 2
/dev/sda2 / ext3 defaults 0 1
/dev/sda3 /home ext3 defaults 0 2
EOF


4. Faça chroot para dentro do sistema.

Monte tudo para o chroot:

# mount -o rbind /dev /mnt/exherbo/dev

IMPORTANTE: Observe sempre se está usando a opção "rbind" ao montar /dev, de outro modo o Paludis não irá funcionar adequadamente.

# mount -o bind /sys /mnt/exherbo/sys
# mount -t proc none /mnt/exherbo/proc
# mount /dev/sda1 boot
# mount /dev/sda3 home


Esteja certo de que a rede pode resolver DNS e mtab esteja correto:

# cp /etc/resolv.conf etc/resolv.conf
# grep -v rootfs /proc/mounts > etc/mtab


Mude seu root:

# env -i TERM=$TERM SHELL=/bin/bash HOME=$HOME chroot /mnt/exherbo /bin/bash
# source /etc/profile
# export PS1="(chroot) $PS1


5. Atualize a instalação.

Esteja certo de que o Paludis esteja configurado corretamente - mudar C/CXXFLAGS para -march=native pode ser uma boa ideia:

# cd /etc/paludis && vim bashrc && vim *.conf

IMPORTANTE: Atualize o Paludis antes de sincronizar - desde que o Paludis é ativamente desenvolvido, é uma boa ideia atualizar o "cliente" para aproveitar novas funcionalidades que podem aparecer com uma sincronia:

# cave resolve -x1 paludis

* Sincronize todas as árvores - agora é seguro sincronizar:

# cave sync

* Atualize os arquivos de configuração:

# eclectic config interactive

6. Torne inicializável.

Baixe o kernel estável mais recente no The Linux Kernel Archives:

# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-${KERNEL_VERSION}.tar.bz2

Extraia:

# tar xvjf linux-${KERNEL_VERSION}.tar.bz2

Instale o kernel:

# cd linux-${KERNEL_VERSION} && make menuconfig
# make && make modules_install && cp arch/x86_64/boot/bzimage /boot/kernel


Instale o GRUB:

# grub-install /dev/sda

Exemplo de configuração de GRUB 2:

# cat < /boot/grub/grub.cfg
set timeout=10

set default=0
menuentry "Exherbo" {
set root=(hd0,1)
linux /kernel root=/dev/sda2
}
EOF


Instale um sistema de inicialização.

Não há sistema init em nossas imagens. Isso permite que você escolha qualquer (ou nenhum) sistema de inicialização que queira usar:
  • sys-apps/systemd (recomendado) - Sistema de inicialização moderno e rápido. Necessita de um kernel >= 2.6.36-rc1.
  • sys-apps/baselayout - O antigo e obsoleto Baselayout-1 do Gentoo.
  • sys-apps/upstart - O sistema de inicialização do Ubuntu. Nós geralmente não fornecemos scripts para este sistema.

Aqui está um tutorial sobre como instalar o systemd no Exherbo: http://www.mailstation.de/wordpress/?p=48

Esteja certo de ativar a opção "systemd" ou "baselayout" (de preferência globalmente, por exemplo adicionando "*/* systemd" a /etc/paludis/options.conf) antes de continuar instalando pacotes para que você tenha os serviços/scripts de inicialização que necessitar.

Você pode querer reinstalar os pacotes incluídos na stage com suas respectivas flags:

# cave resolve world -cx

Isso irá efetuar as mudanças e reinstalar os pacotes afetados:

# cave resolve -x sys-apps/systemd

Configure o hostname para o sistema init escolhido:
  • baselayout: edite /etc/conf.d/hostname
  • systemd: edite /etc/hostname

Esteja certo de que o hostname é mapeado para localhost em /etc/hosts, de outro modo alguns testes de pacotes irão falhar por causa do "sandoboxing" da rede.

# cat< /etc/hosts
127.0.0.1		localhost 	meu.dominio.foo	meuhostname

::1 localhost
EOF

Instale as "coisas" necessárias para seu hardware funcionar, cheque a FAQ (http://exherbo.org/docs/faq.html) por eventuais erros de "Masked by unavailable".

# cave resolve -x iwlwifi-4965-ucode

Faça de /etc/mtab um link para /proc/mounts:

# ln -sf /proc/mounts /etc/mtab

Ative a senha de root:

# passwd

Instale os locales que necessitar:

# localedef -i pt_BR -f ISO-8859-1 pt_BR
# localedef -i pt_BR -f UTF-8 pt_BR.UTF-8


Reinicie:

# reboot && sacrifice a goat && pray