segunda-feira, 26 de outubro de 2009

Gentoo Linux Visão Geral e instalação

O Gentoo Linux pode ser considerado uma metadistribuição, já que através de seu arquivo de configuração make.conf com suas USE_FLAGS podemos criar um sistema personalizado que atenda necessidade individuais, por exemplo, se preciso de um desktop com gnome pra que instalar Apache, Bind, Bancos de dados e outras aplicações inerentes a diversas distribuições Linux se nunca utilizaremos? Se meu desktop será Gnome pra que instalar todas as bibliotecas QT (linguagem de desenvolvimento do KDE)? Instalar esse sistema é realmente uma experiência satisfatória, através dela nós vamos escolhendo exatamente o direcionamento que daremos ao nosso sistema, estamos criando nosso próprio sistema...


Um ponto importante desse sistema é que ele é totalmente compilado para o Hardware alvo, isso também é feito através de algumas variáveis no make.conf, isso faz com que todos os programas instalados tenham um código mais enxuto e com um desempenho superior aos binários genéricos de outras distros, portanto ele é um sistema Linux mais veloz que os demais, isso é sensível.


Instalação

Atualmente tenho utilizado o Funtoo como base para minhas instalações do Gentoo, não conheço muito bem a história, mas parece que o fundador do Gentoo saiu da fundação e criou um sistema semelhante com algumas melhorias que ele batizou de Funtoo.

Lembre que o sistema é totalmente baixado da internet, não existe um sistema de instalação pré-configurado e não é simples fazê-lo, temos que dispor de tempo para instalar e manter o sistema, uma conexão a internet de banda larga é fundamental, instalar via linha discada deve ser um tremendo sofrimento, hardware com idade avançada também pode tornar a experiência sofrível pelo tempo que se gasta com as compilações, mas no final podemos ter um sistema totalmente otimizado para esse hardware, que o tornará mais rápido do que se usarmos outra distro (faca de dois gumes).


Baixe e dê boot com system rescue cd, isso é só uma sugestão, você pode usar qualquer live CD para a instalação http://www.sysresccd.org.


Observe as opções que temos no boot, você pode escolher um sistema de 32 ou 64 bits, essa opção deve ser a mesma do sistema que pretende instalar. Aqui explico como instalar usando a tecnologia LVM (Logical Volume Manager), que não vou explicar o que é, mas garanto que é fantástico.


Vamos lá, dê o boot com o Cd com a opção de 32 ou 64 bits que decidiu instalar o sistema;


Após o boot teremos um prompt, podemos escolher entre deixar em modo texto ou abrirmos uma sessão gráfica do servidor X, nesse caso é só digitar

     startx

Através da interface gráfica a experiência pode ser mais agradável, pois você pode navegar na internet e tirar as dúvidas durante a instalação,  mas no modo texto vai ser mais emocionante.



através do prompt do modo texto ou do terminal da sessão gráfica:

# fdisk /dev/sda

Criando a partição de boot

n

p

1

Pressione Enter para que ela comece no começo do disco.

+50M (esse tamanho é suficiente para acomodarmos alguns kerneis e o grub)

Partiçao Root

n

p

2

Pressione Enter para que ela seja contigua a partição de boot.

+150M (é tamanho suficiente para acomodar todos arquivos de configuração do sistema).

n

p

3

Pressione Enter duas vezes e todas as demais partições irão compartilhar todo o restante do disco, caso queira determinar um tamanho específico faça como nas outras partições.

T (vamos aqui determinar o volume físico do LVM)

3 ( número da partição escolhida para acomodar nosso sistema LVM)

8e ( tipo de partição LVM)

w (vamos escrever as mudanças no disco e gravar essa tabela de partições).


O disco já está particionado;-)


Criar os sistemas de arquivos das partições:

Eu uso ext2 para boot e JFS para todo o resto, considero o JFS o sistema de arquivos mais rápido que existe e ele trabalha muito bem com o lvm, permitindo o redimensionamento de partições "on the fly", mas só pra incremento de tamanho, não dá suporte para redução de tamanho.


    # mkfs.ext2 /dev/sda1

     # mkfs.jfs /dev/sda2 (esse sistema pede confirmação antes de formatar, diga yes)

 agora o LVM

mais informações http://www.gentoo.org/doc/en/lvm2.xml

pvcreate /dev/sda3 (criar o volume físico que o lvm irá utilizar)


vgcreate vg /dev/sda3 (onde o vg é o nome do grupo de volumes, você pode escolher outro nome).

Agora vamos criar as partições para /usr /opt /var /tmp /home e swap, os valores que eu apresento são para minha necessidade, quem segue esse artigo deve especificar suas próprias dimensões, lembrando que você poderá sempre aumentá-las e nunca diminuí-las usando o JFS, com outros sistemas de arquivos isso é possível, mas eu busquei desempenho com essas configurações.



lvcreate -L 2G -n usr vg (criando um volume lógico com tamanho de 2G, novo, denominado usr no grupo de volumes vg ;-)

lvcreate -L 500M -n home vg

lvcreate -L 200M -n opt vg

lvcreate -L 500M -n var vg

lvcreate -L 500M -n tmp vg

lvcreate -L 300M -n swp vg (swap)


Formatar os volumes lógicos:


# mkfs.jfs /dev/vg/usr

# mkfs.jfs /dev/vg/home

# mkfs.jfs /dev/vg/opt

# mkfs.jfs /dev/vg/tmp

# mkfs.jfs /dev/vg/var

# mkswap /dev/vg/swp (swap)


# swapon /dev/vg/swp


Criar os diretórios e montar as respectivas partições:


Se estiver utilizando o system rescue ele já tem o diretório /mnt/gentoo, caso esteja usando outra distro crie esse diretório:


# mkdir /mnt/gentoo

# mount /dev/sda2 /mnt/gentoo

# mkdir /mnt/gentoo/boot

# mkdir /mnt/gentoo/usr

# mkdir /mnt/gentoo/home

# mkdir /mnt/gentoo/opt

# mkdir /mnt/gentoo/tmp

# mkdir /mnt/gentoo/var

# mount /dev/sda1 /mnt/gentoo/boot

# mount /dev/vg/usr /mnt/gentoo/usr

# mount /dev/vg/home /mnt/gentoo/home

# mount /dev/vg/opt /mnt/gentoo/opt

# mount /dev/vg/tmp /mnt/gentoo/tmp

# mount /dev/vg/var /mnt/gentoo/var



Pronto, a máquina está preparada para começarmos a instalar o sistema

Vá até www.funtoo.org e baixe o stage3 de acordo com seu processador, podemos escolher entre a versão estável e a de testes, esta vem denominada ~funtoo.


vou usar o stage para ~x86


Vamos começar a fazer tudo dentro do diretório /mnt/gentoo que será a raiz do nosso sistema:
# cd /mnt/gentoo

Se estiver utilizando o system rescue precisamos ativar a interface de rede:
# net-setup eth0 (o programa irá fazer algumas perguntas, responda).

# wget http://dev.funtoo.org/linux/~funtoo/x86/stage3-x86-current.tar.bz2 (lembrando que o "~" determina que utilizaremos o sistema unstable, com softwares que podem ter bugs, em contra-partida são os mais recentes, como quero performance uso os mais novos, não os mais estáveis).


# tar xvjpf stage3-x86-current.tar.bz2

# cd usr/

# wget http://dev.funtoo.org/linux/~funtoo/snapshots/portage-current.tar.bz2 (snapshot do portage)

# tar xvjpf portage-current.tar.bz2

Agora é o momento de entrarmos no nosso sistema......


Vamos copiar nossas configurações de DNS para o novo sistema:


# cp /etc/resolv.conf /mnt/gentoo/etc

montar proc e dev

#  mount -t proc none /mnt/gentoo/proc

# mount -o bind /dev /mnt/gentoo/dev

# chroot /mnt/gentoo /bin/bash

Agora já estamos dentro do sistema que estamos instalando

# cd /usr/portage

# git checkout funtoo.org

# emerge --sync

Agora vamos trabalhar o make.conf para que ele atenda nossas necessidades.


Abaixo segue o meu arquivo, você pode digitar man make.conf e ler o manual, ver as USE_FLAGS em http://www.gentoo.org/dyn/use-index.xml e comece a montar seu sistema.


# These settings were set by the catalyst build script that automatically built this stage
# Please consult /etc/make.conf.example for a more detailed example

CFLAGS="-Os -march=prescott -mtune=prescott -mssse3 -mmmx -msse -msse2 -msse3 -mcx16 -msahf -mfpmath=sse -fomit-frame-pointer -pipe -ftracer -funroll-loops -maccumulate-outgoing-args -ftracer"
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
CHOST="i686-pc-linux-gnu"

USE_CPU="smp mmx mmxext sse sse2 sse3 ssse3"
USE_SYS="alsa cvs branding hal dbus acpi apm usb subversion git jfs ubuntu-patches nls symlink zlib vim-syntax"
USE_XORG="X xorg xcomposite xscreensaver xulrunner dri opengl cdparanoia dvd dvdr ffmpeg gif gphoto java6 jpeg jpeg2k mime mp3 mpeg gnome mplayer msn nsplugin pdf png xml truetype tiff xpm gtk"
USE_NO="-kde -mysql -debug -doc -emacs -cups -kerberos -qt -qt3 -qt4 -odbc -postgres -sqlite -sqlite3 -msql -mssql -oracle -pcmcia -doc -info -ipv6 -oss -xemacs"
USE="${USE_CPU} ${USE_SYS} ${USE_XORG} ${USE_NO}"

SYNC="rsync://rsync.samerica.gentoo.org/gentoo-portage"
#SYNC="rsync://rsync.gentoo.org/gentoo-portage"
ACCEPT_KEYWORDS="~x86"

LINGUAS="pt_BR"
MAKEOPTS="-j3 -s"
PORTAGE_NICENESS="8"
FEATURES="parallel-fetch collision-protect"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/skel"
INPUT_DEVICES="keyboard mouse evdev"
VIDEO_CARDS="vmware"
ALSA_CARDS="hda-intel"
PORTAGE_ELOG_CLASSES="warn info log"
PORTAGE_ELOG_SYSTEM="save"
#source /usr/local/portage/layman/make.conf
GENTOO_MIRRORS="http://www.las.ic.unicamp.br/pub/gentoo/ ftp://ftp.las.ic.unicamp.br/pub/gentoo/ ftp://mirrors.localhost.net.ar/pub/mirrors/gentoo http://gentoo.localhost.net.ar"


Pode-se notar que eu uso gnome e gtk, não quero nada do kde/qt, portanto tenho flags "positivas" para gnome/gtk e "negativas" para kde/qt.


configurar o kernel, vamos indicar nossa localização:


nano /etc/locale.gen


edite para


pt_BR.UTF-8


rode:

# locale-gen

Timezone:

# ls /usr/share/zoneinfo/Brazil



No meu caso estou no Leste, moro em SP, veja seu fuso por aí



# cp /usr/share/zoneinfo/Brazil/East /etc/localtime

Instalando o sistema base, o kernel:

# emerge gentoo-sources


Nesse ponto temos dois caminhos a seguir, compilar nosso prórprio kernel ou usar a ferramenta genkernel para fazer isso para nós, eu uso o genkernel, se for compilar na unha:


# cd /usr/src/linux

# make menuconfig (Boa sorte) Dê uma olhada no handbook do gentoo http://www.gentoo.org/doc/en/handbook/handbook-x86.xml lá eles dão algumas instruções de o que não se deve esquecer na configuração do kernel.

Para o genkernel temos ainda um passo:

# emerge genkernel

# genkernel --lvm --menuconfig all

Deixe sua configuração para seu processador, no meu caso é um Dual Core, fica como Core2.

É recomendável que você vá a “File System” e set como built-in os sistemas de arquivos que vai utilizar, nesse caso é JFS e Ext2.

Já li em algum lugar que a opção em “Enable Block Layer”  IO Schedulers como Deadline, é o mais performático para sistemas de arquivos JFS.

Feito isso é só esperar a compilação do kernel.

O próximo passo é editar o arquivo /etc/fstab de acordo com as partições que criamos e montamos em nosso sistema.

/etc/conf.d/hostname (coloque o nome de sua máquina);

Se sua rede é configurada por dhcp:
# config_eth0=( "dhcp" )
Se é IP Fixo:

# config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" )
# routes_eth0=( "default via 192.168.0.1" )

Lembrem-se que estou usando o Funtoo, aqui umas das principais diferenças do Gentoo, a rede por dhcp é configurada no boot através do comando:

# rc-update add dhcpcd default

Vamos editar o arquivo hosts:

# nano /etc/hosts

(This defines the current system)
127.0.0.1     nome_da_sua_maquina.nome_do_seu_dominio nome_da_sua_maquina localhost

Se quiser achar máquinas por nome sem usar um servidor de DNS coloque os nomes de máquinas de sua rede nesse arquivo com o formato abaixo:

192.168.0.5   jenny.homenetwork jenny
192.168.0.6   benny.homenetwork benny

Senha do root:
# passwd

# /etc/conf.d/hwclock (substitua o UTC por local, para deixar o relógio setado como o da BIOS)
# etc/conf.d/keymaps (meu teclado é abnt, portanto “br-abnt2”)

Instalando programas fundamentais para o sistema funcionar:

# emerge jfsutils
# emerge lvm2
# emerge grub

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install --no-floppy /dev/das

Antes de terminarmos adicionar lvm e device-mapper ao boot
# rc-update add lvm boot
# rc-update add device-mapper boot

# exit
# reboot

Pronto o sistema já está funcionando na configuração mais básica possível, agora cabe ao dono do sistema achar o direcionamento que dará a essa máquina.

Observação importante: o Servidor X hoje é todo baseado no dbus, portanto em INPUT_DEVICES=”evdev” e outras coisas como keyboard, joystick...... mas não esqueça do evdev, sem ele você corre o risco do seu sistema gráfico não funcionar.

Tem muita documentação na internet sobre o assunto.

Nenhum comentário:

Postar um comentário