terça-feira, 20 de outubro de 2009

Guia rápido de instalação do Funtoo

Este guia procura mostrar da melhor maneira como devemos proceder para instalar o Funtoo Linux (uma espécie de Gentoo "melhorado"), lembrando que para isto devemos conhecer o básico sobre uma instalação do Gentoo Linux. Este guia deve ser utilizado paralelamente com o manual do Gentoo Linux.

A árvore portage do Funtoo Linux é baseada em git e oferece também uma plataforma instável, bem como uma plataforma estável. Nossos desenvolvedores têm foco nas arquiteturas x86 e amd64.

Estágios (stages) do Funtoo Linux podem ser obtidos a partir do servidor instável (http://dev.funtoo.org/linux/~funtoo) ou do estável (http://dev.funtoo.org/linux/funtoo). Também provemos um repositório de imagens (snapshots) do portage em http://dev.funtoo.org/linux/~funtoo/snapshots, que são comuns para ambos os portes do Funtoo Linux, x86 ou amd64.
Estável    Instável     Processador 32/64
amd64 ~amd64 Generic Intel or AMD 64-bit Processor 64-bit
core2 ~core2 Intel Core 2 Series, i5, i7 or i9 Processor 64-bit
N/A ~core2_32 Intel Core 2 Series, i5, i7 or i9 Processor 32-bit
opteron ~opteron AMD Athlon 64, Opteron or Phenom Processor 64-bit
N/A ~opteron_32 AMD Athlon 64, Opteron or Phenom Processor 32-bit
x86 ~x86 Generic x86 processor (intel 80486+) 32-bit
i686 ~i686 Generic P6-class (Pentium Pro/Pentium II compat.) 32-bit
N/A ~athlon-xp Athlon XP or Athlon 64-based CPU (32-bit mode) 32-bit
N/A ~pentium4 Intel Pentium 4 Processor 32-bit

Nos diretórios de cada porte você verá imagens de estágios (stage tarballs) com subdiretórios openvz e vserver. Tais diretórios contém exemplos (templates) OpenVZ e Linux Vserver (imagens virtuais) que foram construídas a partir do diretório de estágio3 "stage3 tarball".

Você também perceberá que alguns diretórios contém imagens de stage1, stage2 e stage3 (estágios 1, 2 e 3), enquanto outros diretórios contém apenas stage1 ou stage2. Abaixo estão as várias permutações de quais estágios você poderá encontrar em cada diretório de porte e o que significam:
Portes                                         Estágios incluídos
Base total subarquitetura (x86 and amd64) stage1, stage2, stage3
"Renovada" subarquitetura (qualquer) stage3

Algumas vezes você verá um diretório de porte em que a única imagem seja stage3. Nesse caso nós não reconstruímos totalmente a imagem de stage, ao invés utilizamos um modo "recente" de compilação, que simplesmente renova uma imagem prévia (stage), diferentemente de uma atualização profunda (deep emerge update). Esta é uma função especial do Metro que nós utilizamos periodicamente para ter certeza que esta mesma funcione. :)

Note também que um repositório de imagens Portage do Funtoo (Funtoo Portage snapshot repository - http://dev.funtoo.org/linux/~funtoo/snapshots) está disponível - ambos os portes estável (stable) ou instável (unstable) utilizam as mesmas imagens portage (portage snapshots).

IMPORTANTE: As imagens portage do Funtoo (Funtoo Portage Snapshot tarballs) são maiores que as do Gentoo, pois as nossas possuem informação de histórico do git bem como todos os arquivos padrão do portage. Isso significa que nossas imagens portage também são repositórios git completamente funcionais.

Você usa a imagem portage do Funtoo da mesma maneira que uma imagem portage padrão do Gentoo (Gentoo Portage snapshot tarball) - durante o processo de instalação, você deve extrair o conteúdo da imagem para /usr (/mnt/gentoo/usr no liveCD) para que o diretório /usr/portage seja criado. Esteja certo de que não exista um diretório /usr/portage antes da instalação - se existe, faça isso primeiramente:

# mv /usr/portage /usr/portage.old

Visão geral da instalação

Aqui está uma visão geral básica do processo de instalação.
  1. Baixar e inicializar um LiveCD de sua preferência;
  2. Criar e montar um sistema de arquivos compatível em /mnt/gentoo como o descrito no manual do Gentoo;
  3. Baixar e extrair a imagem de estágio do Funtoo (Funtoo stage tarball) de sua preferência em /mnt/gentoo/usr;
  4. Preparar e entrar no novo ambiente "chroot", como descrito no manual do Gentoo;
  5. Selecionar a plataforma funtoo.org da árvore do portage executando o comando git checkout funtoo.org no diretório /usr/portage;
  6. Compilar e instalar um kernel como descrito no manual do Gentoo;
  7. Realizar configurações adicionais - alguns passos são diferentes devido ao nosso uso do OpenRC. Detalhes dessa diferenças serão mostrados abaixo;
  8. Instalar o GRUB como descrito no manual do Gentoo;
  9. Inicializar sua nova instalação do Funtoo!

As seções seguintes explicarão todos os passos específicos do Funtoo, bem como os passos que diferem da instalação padrão do Gentoo.

LiveCD

O Funtoo não provê um LiveCD oficial, mas existem vários muito bons que podem ser escolhidos livremente. Uma boa opção é o cd de instalação mínima do Gentoo (Gentoo Minimal Install CD). O cd de recuperação de sistemas baseado em Gentoo (Gentoo-based System Rescue CD) também é uma excelente escolha, por conter muitas ferramentas e utilitários e também suportar as arquiteturas 32 e 64 bits.

IMPORTANTE: O cd de recuperação de sistemas (Gentoo-based System Rescue CD) suporta tanto máquinas 32 quanto 64 bits, mas seu padrão é para 32 bits. Se você está realizando uma instalação para 64 bits, esteja certo de que escolheu manualmente o kernel para 64 bits na tela de inicialização quando estiver iniciando o LiveCD.

Portage

Árvore portage do funtoo.

A maneira mais fácil de obter a árvore portage do Funtoo é obter a imagem do portage mais recente no repositório de imagens do portage. Então extraí-la dentro do ambiente "chroot" no diretório /usr para criar /usr/portage:

# cd /mnt/gentoo/usr
# tar xf /path/to/downloaded/portage-2009.01.19.tar.bz2


Assim que fizer isso, você precisará "ativar" a árvore portage selecionando a plataforma funtoo.org . Por padrão a plataforma "principal" é ativada. Isso economiza espaço armazenando a árvore dentro de uma imagem (tarball), mas esta plataforma contém os arquivos README e LICENSE. Para ativar a plataforma funtoo.org, faça o seguinte:

# cd portage
# git checkout funtoo.org

Checking out files: 100% (85007/85007), done.
Switched to branch "funtoo.org"

Agora você poderá ver milhares de ebuilds gloriosas dentro de sua árvore portage :). Rode:

# emerge --sync

Isso irá atualizar sua árvore portage, e também atualizará o cache do portage (portage cache) para que o emerge rode com desempenho total!

NOTA: Também é possível obter uma árvore portage a partir do GitHub diretamente utilizando o comando "git clone [uri]". Nós não recomendamos esse método para criar sua árvore inicial, pois demanda banda excessiva do GitHub e também é mais lento pra você. Por isso recomendamos as instruções acima deixando o "emerge --sync" obter as "atualizações" (ao invés da árvore inteira) a partir do GitHub.

Portage 2.2_rc18 ou mais atual está preparado para o git. Se você está utilizando o Portage 2.2_rc18 ou mais atual, pode tranquilamente utilizar o comando "emerge --sync" para atualizar uma árvore portage existente:

# emerge --sync
>>> Starting git pull in /usr/portage...
Already up-to-date.
>>> Git pull in /usr/portage successful

Portage 2.2_rc18+ atualizará apenas árvores baseadas em git. Portage não cria árvores baseadas em git automaticamente para você. Você precisa fazer isso manualmente extraindo uma imagem baseada em git (git-based snapshot tarball) ou usando git clone.

IMPORTANTE: Como o portage 2.2_rc20+, "emerge --sync" é agora um método altamente recomendado de atualizar sua árvore portage baseada em git. Executar "emerge --sync" irá atualizar sua árvore portage baseada em git e se certificará que o cache de metadados (metadata cache) estará propriamente atualizado. Se você utiliza git pull manualmente, é recomendado que você execute "emerge --sync" após para que o cache do portage também seja atualizado e este seja executado em sua performance total.

Diferenças do manual do Gentoo

Módulos:

O manual do Gentoo explica que os módulos devem estar em /etc/modules.autoload.d/kernel-2.6. Com Funtoo, OpepnRC carrega módulos a partir de /etc/conf.d/modules utilizando-se a linha abaixo:

modules_2_6="lista de módulos"

Com Funtoo, defina argumentos como abaixo:

module_module-name_args_2_6="módulo arg=valor"

Rede:

Funtoo Linux usa um sistema de configuração de redes mais leve. Para mais informações sobre as mudanças consulte o Guia de Configuração de Redes Funtoo Linux (em inglês apenas, por enquanto).

Informação do sistema:

OpenRC usa /etc/conf.d/hwclock ao invés de /etc/conf.d/clock.

Ferramentas de rede:

Não há necessidade de instalação do cliente DHCP, já que o dhcpcd está incluído na stage3 do Funtoo. Iproute2 também é incluído por padrão.

Sobre o autor

Daniel Robbins é o fundador da comunidade Gentoo Linux e criador do sistema operacional Gentoo Linux. Daniel reside no Novo México (New Mexico) com sua mulher e duas adoráveis filhas, e também é fundador e líder do Funtoo. Daniel tem também escrito muitos artigos técnicos para a IBM DeveloperWorks, Intel Developer Services e C/C++ Users Journal. E ahn... Daniel tem um blog: http://blog.funtoo.org/