Para aqueles que desejam instalar o Gentoo Linux e não possuam uma experiência com o inglês ou mesmo não querem ler dezenas de páginas do handbook, escrevi este documento com o intuito de facilitar a instalação do Gentoo. O documento está mais para uma receita de bolo, com passo a passo de como instalar o sistema básico e, caso queira, o servidor X. Não entrei em muitos detalhes sobre cada item, fazendo apenas alguns comentários, para que o documento não ficasse muito extenso.
Aguardo críticas e sugestões para manter o documento atualizado, uma vez que o handbook em nossa língua não sofre mais atualizações.
*Para aqueles que desejarem, baixem este documento no formado PDF clicando aqui.
v. 15/6/2010
Por Tales A. Mendonça
Agradecimentos ao jmbsvicetto, desenvolvedor do Gentoo.
obs.: Para quem for utilizar ~arch, use o guia(http://www.gentoo.org/doc/en/openrc-migration.xml) para fazer a atualização/migração para Baselayout2 e OpenRC. Os itens deste documento que serão alterados são: 15, 17.1 e 22.1.
1. Baixar o ISO mínimo de instalação
Link para download: http://gentoo.c3sl.ufpr.br/releases/ (Escolha a sua arquitetura e logo em seguida selecione current/install-*<arch>*-minimal-[versão].iso).
Após baixar o arquivo, verifique se a imagem(ISO) não está corrompida. Se estiver tudo OK, queime em um CD.
1.1. Carregando o LiveCD
Digite gentoo para carregar o sistema normalmente ou escolha outras opções(F1) disponíveis.
obs.: Digitando gentoo no boot do CD, o sistema será carregado com suporte para o kernel 2.6
2. Layout do teclado
Escolha o tipo de layout do teclado compatível com sua máquina. No nosso caso, a opção é 4(br-a), que representa o ABNT2.
3. Configurando a rede
Configure a rede para prosseguir com a instalação. O padrão é a rede iniciar utilizando DHCP, que já deverá estar configurada, caso não esteja, utilize o comado net-setup eth0 para configurá-la.
obs: Substitua eth0 pela sua interface de rede.
Para testar a rede, use o comando ping www.google.com, por exemplo.
4. Configurando os discos
Utilizar o cfdisk é uma boa escolha, ao invés do fdisk.
Partições que serão criadas:
EXT2 /boot 100MB /dev/sda1
SWAP swap 502MB (memória RAM atual é de 512MB) /dev/sda1
EXT4 / restante do disco /dev/sda2
obs.: Não é preciso criar uma partição /boot separada, a não ser que você esteja configurando um servidor(para obter mais segurança e não corromper o diretório de boot).
Nota.: Após criar as partições no cfdisk, será definido um nome+número das partições (sda1, sda2, sda3, sdb4, sdd…).
4.1. Criar os tipos de arquivos, EXT2, EXT4 e SWAP(área de troca)
(Criando o sistema de arquivos EXT2)
# mke2fs /dev/sda1
(Criando o sistema de arquivos EXT3)
# mke2fs -j /dev/sda3
(Criando o sistema de arquivos EXT4)
mkfs.ext4 /dev/sda2
(Criando e ativando a partição swap)
mkswap /dev/sda1 swapon /dev/sda1
4.2. Montando as partições criadas para instalar o stage e o portage
(Montando o sistema raiz(/))
mount /dev/sda2 /mnt/gentoo
(Criando a partição boot)
# mkdir /mnt/gentoo/boot
(Montando a partição boot dentro do raíz)
# mount /dev/sda1 /mnt/gentoo/boot
5. Instalando o stage 3
obs.: Configure a data, com o comando date, se a mesma estiver incorreta.
5.1. Baixando o stage 3 direto da internet
cd /mnt/gentoo links http://gentoo.c3sl.ufpr.br/releases/
Navegue até ../<arquitetura>/current-stage3/ e baixe o arquivo stage3-i686-[versão].tar.bz2 com a versão mais nova. Aguarde, o arquivo tem ~135 MB.
obs.: Eu defini baixar e fazer todo o procedimento com o stage compilado para arquitetura i686. Fique avontade para escolher um mais adequado.
(Após baixar, verifique se o arquivo não está corrompido. O arquivo.DIGESTS também deve ser baixado)
md5sum -c stage3-i686-*.tar.bz2.DIGESTS
(Descompactando o stage3)
tar -xvjpf stage3-*.tar.bz2
(Removendo o source baixado. Você não irá mais precisar dele, talvez em outra instalação.)
rm -f stage3-*.tar.bz2*
6. Instalando o portage
(Entre no diretório raíz, caso não esteja)
cd /mnt/gentoo
(Baixe a versão mais recente do portage no link abaixo)
links http://gentoo.c3sl.ufpr.br/releases/snapshots/current/
(Verifique se o arquivo está corrompido. O arquivo.md5sum também deve ser baixado)
md5sum -c portage-latest.tar.bz2.md5sum
(Extraindo os arquivos do portage)
tar -xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr
(Removendo o source baixado. Você não irá mais precisar dele, talvez em outra instalação.)
rm -f portage-latest.tar.bz2*
7. Configurando as opções de compilação no “/etc/make.conf”
nano -w /mnt/gentoo/etc/make.conf
CHOST="i686-pc-linux-gnu" # Mais informações sobre a variável CHOST(http://www.gentoo.org/doc/en/change-chost.xml). CFLAGS="-march=native -O2 -pipe" CXXFLAGS="${CFLAGS}" LINGUAS="pt_BR" ACCEPT_KEYWORDS="x86" # Troque x86 pela arquitetura que deseja usar. ACCEPT_LICENSE="*" # Aceita automaticamente licença de programas como o java e o VirtualBox
obs.: A opção -march=native é válida apenas para versões do gcc 4.3 em diante. Caso o seu gcc seja uma versão anterior a 4.3, você deverá informar a arquitetura correta correspondente ao seu CPU. Se tiver em dúvida ou indeciso em qual utilizar, deixe como -march=i686 e todos os seus pacotes serão compilados para arquitetura i686.
Se for utilizar distcc(http://www.gentoo.org/doc/en/distcc.xml), não utilize -march=native.
(Configurando mirrors para a variável GENTOO_MIRRORS)
mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
(Configurando um mirror para a variável SYNC)
mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf
8. Copiando o DNS do liveCD para a partição montada
cp -L /etc/resolv.conf /mnt/gentoo/etc/
9. Montando os sistemas de arquivos
(Montando o sistema de arquivos /proc)
mount -t proc none /mnt/gentoo/proc
(Montando o sistema de arquivos /dev)
mount -o bind /dev /mnt/gentoo/dev
10. Entrando no novo ambiente com chroot
chroot /mnt/gentoo /bin/bash
(Criando um novo ambiente com variáveis de ambiente)
env-update >> Regenerating /etc/ld.so.cache...
(Carregando as variáveis de ambiente na memória)
source /etc/profile
(*Opcional. Apenas para indicar que está em um ambiente chroot)
export PS1="(chroot) $PS1"
11. Configurando o portage
(Atualiza a lista de pacotes do portage)
emerge --sync
12. Atualizando o perfil *Opcional
Atualiza ou troca de profile.
(Listando os profiles disponíveis)
eselect profile list
(Escolhendo um profile. n = número do profile)
eselect profile set n
13. Configurando a variável USE
(Aqui você pode encontrar todas as flags da variável USE disponíveis)
less /usr/portage/profiles/use.desc
(Segue um exemplo da USE que deve ser configurada no /etc/make.conf)
nano -w /etc/make.conf
(A variável USE abaixo irá construir um ambiente voltado para o ambiente kde)
USE="-gtk -gnome qt4 kde dvd alsa cdr"
(Mais um exemplo. O sistema será voltado tanto para kde como para o gnome)
USE="avi cdr crypt cups dvd dbus encode gnome gtk gtk2 hal jpeg kde mp3 mpeg ncurses nls opengl png qt4 sdl spell tcpd truetype X truetype unicode"
Dica: Configure apenas as USE globais no ‘/etc/make.conf’.
14. Configurar localidade no glibc *Opcional
nano -w /etc/locale.gen
(Configurando para o nosso idioma)
pt_BR ISO-8859-1 pt_BR.UTF-8 UTF-8
15. Configurando o timezone
(Procure por um timezone compatível com a sua localidade)
ls /usr/share/zoneinfo
(copiando o timezone Sao_Paulo para o “/etc/localtime”)
cp /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
16. Instalando o fonte do kernel
emerge -av gentoo-sources
17. Utilizando o genkernel para compilar o kernel
obs.: O genkernel serve apenas para ajudar no processo de compilação e instalação do kernel, mas cabe a você configurá-lo manualmente de acordo com o hardware da sua máquina. Caso você esteja tentando instalar o gentoo no VirtualBox, o genkernel não irá funcionar e você terá que compilar o kernel manualmente. Olhe no Handbook os itens: 7.c e 10.b
(Instalando o genkernel)
emerge -av genkernel
(Copiando a configuração do kernel usada no liveCD para onde o genkernel irá procurar a configuração do kernel padrão. aaa = arquitetura, exemplo: x86)
# zcat /proc/config.gz > /usr/share/genkernel/arch/aaa/kernel-config-2.6
zcat /proc/config.gz > /usr/share/genkernel/arch/aaa/kernel-config
(Compilando o kernel com o genkernel)
genkernel --menuconfig --oldconfig --splash --install all
obs.: Para a opção “–splash” funcionar, deve ser ativada no kernel.
17.1. Adicionando módulos no arranque do sistema
(*Opcional, Adicionar módulos para serem carregados na inicialização do sistema)
nano -w /etc/modules.autoload.d/kernel-2.6
# Módulos carregados durante o boot nvidia vboxdrv
18. Configurando as partições(fstab)
(Editando o fstab para configuração)
nano -w /etc/fstab
obs.: Opções como CD/DVD podem ser removidas pois o DBUS é responsável por gerenciar mídias removíveis.
# --- Início da Configuração --- #
/dev/sda1 /boot ext2 defaults,noatime 1 2
/dev/sda1 none swap sw 0 0
/dev/sda2 / ext4 noatime 0 1
# --- Fim da Configuração --- #
19. Configurando o hostname(nome da máquina)
nano -w /etc/conf.d/hostname
20. Configurando a rede
(Editando o arquivo para configuração da rede)
nano -w /etc/conf.d/net
# --- Início da Configuração --- # config_eth0=( "192.168.1.2 netmask 255.255.255.0 brd 192.168.0.255" ) routes_eth0=( "default via 192.168.1.254" ) #config_eth0=( "dhcp" ) # Para utilizar como dhcp é preciso instalar o cliente dhcp(emerge -av dhcpcd) # --- Fim da Configuração --- #
obs.: Mais informações podem ser encontradas no arquivo ‘/etc/conf.d/net.example’.
20.1. Iniciando a rede no arranque
rc-update add net.eth0 default
21. Configurando os hosts *Opcional
nano -w /etc/hosts
22. Informações sobre o sistema
(Configura a senha do root)
passwd
(Configura informações como: gerenciador gráfico, editor, ambiente gráfico padrão)
nano -w /etc/rc.conf
(Configura o layout do teclado)
nano -w /etc/conf.d/keymaps
KEYMAP="-u br-abnt2"
22.1. Configura o relógio
(Configura o relógio buscando informações direto da internet)
nano -w /etc/conf.d/clock
CLOCK="UTC" TIMEZONE="America/Sao_Paulo" CLOCK_SYSTOHC="yes"
23. Instalando ferramentas necessárias para o sistema
23.1. Guarda informações do sistema; um registrador do sistema
(Instalando o syslog-ng)
emerge syslog-ng
(Carregando o syslog-ng no boot)
rc-update add syslog-ng default
23.2. Executando tarefas programadas
(Instalando o vixie-cron)
emerge vixie-cron
(Carregando o vixie-cron no boot)
rc-update add vixie-cron default
23.3. Encontrando qualquer arquivo no sistema de forma rápida
(Instalando o slocate)
emerge slocate
23.4. Instalando o PPP *Opcional
Instale apenas se você for utilizar conexão discada, exemplo o velox.
(Instalando o ppp)
emerge o ppp
24. Instalando o gerenciador de boot
(Instalando o gerenciador de boot grub)
emerge -av grub
Segue um exemplo da configuração do grub, comentado:
nano -w /boot/grub/grub.conf
#--- Início da Configuração---# default 0 # Dispositivo padrão de carregamento timeout 10 # Tempo de espera até que uma das opções de boot seja escolhida e carregada. splashimage=(hd0,0)/boot/grub/splash.xpm.gz # Carrega a tela de splash title Gentoo Linux 2.6.28-r5 root (hd0,1) # hd0,0 = /dev/sda1, hd0,1 = /dev/sda2 kernel /boot/kernel-genkernel-x86-2.6.28-gentoo-r5 real_root=/dev/sda2 # Opções opcionais relacionadas com a saida do genkernel # vga=791 splash=silent,theme:default console=tty1 quiet #initrd /boot/initramfs-genkernel-x86-2.6.24-gentoo-r5 # *Opcional # Use as opções abaixo caso tenha um dual-boot #title Windows XP #rootnoverify (hd0,5) #makeactive #chainloader +1 #--- Fim da Configuração ---#
(Criando um mtab no ambiente chroot)
grep -v rootfs /proc/mounts > /etc/mtab
(Instalando o grub)
grub-install --no-floppy /dev/sda
25. Recarregando o sistema
*Aqui você já terá o sistema básico do Gentoo instalado, ou seja, o mínimo do mínio para o sistema ser carregado. Sem Servidor X, claro, o mesmo nem foi instalado.
exit && reboot
livecd root # cd
livecd root # umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
livecd root # reboot
** Resumindo, neste pondo você terá nada mais do que um sistema butável.
*** IMPORTANTE: Para manter o sistema limpo de pacotes desnecessários, rode os 3 comandos abaixo após a instalção e de preferência 1 vez por mês, para manter um sistema íntegro e atualizado.
(Atualiza todo o sistema)
emerge -NDuatv world
(Remove pacotes desnecessários. Cuidado com este comando, ele poderá remover o seu kernel se o mesmo não estiver atualizado)
emerge -av --depclean
(Reconstrói a estrutura do sistema, procurando por pacotes(bibliotecas) quebrados)
revdep-rebuild
Primeiras Configurações após o primeiro boot…
*Opcional – Instalando e configurando o ccahe
“O ccache é um cachê para compilações rápidas. Quando você compila um programa, ele fará cachê de resultados intermediários para que, quando você recompilar o mesmo programa, o tempo de compilação seja drasticamente reduzido. Em compilações comuns isso pode resultar em compilações de 5 a 10 vezes mais rápidas.”
emerge -av ccache
(Adicionar ccache na variável FEATURES no make.conf)
FEATURES="${FEATURES} ccache"
(Definir o tamanho do ccache no make.conf)
CCACHE_SIZE="2G"
(Definir o diretório que será utilizado para fazer cache)
CCACHE_DIR="/var/tmp/ccache"
(O local ‘/var/tmp/ccache’ é o diretório padrão do ccache no portage)
*Atualizar o GCC
emerge -uav1 gcc
(Lista os profiles do gcc disponíveis)
gcc-config -l
(Substituir “i686-pc-linux-gnu-4.3.2” para a versão
do GCC e ajustes de CHOST para o que foi atualizado)
gcc-config i686-pc-linux-gnu-4.3.2 source /etc/profile
(Reconstruindo a biblioteca libtool)
emerge -av1 libtool
(Reconstruindo o sistema para usufruir do novo compilador)
emerge -NDuaetv world
26. Adicionando um usuário
useradd -m -G users,wheel,audio,video,usb,cdrom -c "Mari Mendonça" mari passwd mari
27. Ajustando a linguagem padrão do sistema
(O arquivo 02locale não existe, mas será criado agora)
nano -w /etc/env.d/02locale
(Adicione o conteúdo abaixo)
LANG="pt_BR.UTF-8" LC_COLLATE="C"
(exportando as variáveis para o sistema)
export LANG="pt_BR.UTF-8" export LC_COLLATE="C"
(Carregando o sistema com as variáveis exportadas)
env-update && source /etc/profile
*Pacotes recomendáveis instalar
app-portage/gentoolkit
app-portage/eix
app-portage/autounmask
** Configurando o X
1. Comece instalando o hal e colocando para ser iniciar no boot
emerge -av hal rc-update add hald default
2. Comece colocando algumas variáveis de ambiente no /etc/make.conf
(Configura os dispositivos. Configure de acordo com os seus dispositios)
INPUT_DEVICES="evdev keyboard mouse"
(Configura o driver de video, para utilizar mais de um, coloque com espaço)
VIDEO_CARDS="nv nvidia"
(Instalando o Xorg-server)
emerge -av xorg-server
2. Configurando o xorg.conf
(Gera o xorg.conf de forma automática)
Xorg -configure
ou
(Passo a passo para configurar o xorg já gerando um xorg.conf)
xorgconfig
(Testa para ver se está tudo funcionando bem, mouse e teclado)
X -config /root/xorg.conf.new
(Cuidado ao testa-lo de uma vez pois poderá travar o seu X e precisará reiniciar o computador)
(copia o arquivo do xorg.conf para o seu devido lugar)
cp /root/xorg.conf.new /etc/X11/xorg.conf
(Configure de acordo que achar melhor)
Segue abaixo um exemplo do meu xorg.conf
Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 EndSection Section "Files" ModulePath "/usr/lib64/xorg/modules" FontPath "/usr/share/fonts/misc/" FontPath "/usr/share/fonts/TTF/" FontPath "/usr/share/fonts/OTF" FontPath "/usr/share/fonts/Type1/" FontPath "/usr/share/fonts/100dpi/" FontPath "/usr/share/fonts/75dpi/" EndSection Section "Module" Load "dbe" Load "extmod" Load "record" Load "glx" Load "dri2" Load "dri" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" EndSection Section "Device" Identifier "Card0" Driver "intel" VendorName "Intel Corporation" BoardName "Mobile 4 Series Chipset Integrated Graphics Controller" BusID "PCI:0:2:0" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x800" EndSubSection EndSection
A configuração do teclado e mouse devem ficar por conta do hal, para isso a configuração deve ser feita no diretório /etc/hal/fdi/policy/. Veja um exemplo dos arquivo de configuração de teclado e mouse(este relacionado ao notebook)
(Arquivo (10-x11-input.fdi) de configuração do teclado)
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<match key="info.capabilities" contains="input.keys">
<!-- Option "XkbModel" "abnt2" -->
<merge key="input.xkb.model" type="string">evdev</merge>
<merge key="input.xkb.layout" type="string">br</merge>
</match>
</deviceinfo>
(Arquivo (11-x11-synaptics.fdi) de configuração do mouse(touch))
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.touchpad">
<merge key="input.x11_driver" type="string">synaptics</merge>
<!-- Arbitrary options can be passed to the driver using
the input.x11_options property since xorg-server-1.5. -->
<merge key="input.x11_options.SHMConfig" type="string">true</merge>
<merge key="input.x11_options.MaxTapMove" type="string">2000</merge>
<merge key="input.x11_options.VertEdgeScroll" type="string">true</merge>
<merge key="input.x11_options.VertTwoFingerScroll" type="string">false</merge>
<merge key="input.x11_options.HorizTwoFingerScroll" type="string">false</merge>
<merge key="input.x11_options.CircularScrolling" type="string">false</merge>
<merge key="input.x11_options.TapButton1" type="string">1</merge>
<merge key="input.x11_options.TapButton2" type="string">2</merge>
<merge key="input.x11_options.TapButton3" type="string">3</merge>
</match>
</device>
</deviceinfo>
*No caso dessa configuração, de um mouse touch, é necessária a instalação do pacote x11-drivers/xf86-input-synaptics.
Fonte: Handbook do gentoo.org