Instalando o sistema base do Gentoo

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:AMD64/Installation/Base and the translation is 100% complete.

Other languages:
čeština • ‎Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文 • ‎中文(中国大陆)‎
AMD64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


Fazendo chroot

Opcional: Selecionando espelhos

Arquivos de distribuição

Para baixar o código fonte rapidamente é recomendado selecionar um espelho rápido. O portage procura no arquivo make.conf pela variável GENTOO_MIRRORS e usa os espelhos configurados lá. É possível navegar pela lista de espelhos do Gentoo e procurar um espelho (ou espelhos) que está perto da sua localização física (pois esses frequentemente são os mais rápidos). Entretanto, nós fornecemos uma boa ferramenta chamada mirrorselect que provê ao usuário uma boa interface para selecionar os espelhos necessários. Simplesmente navegue até os espelhos escolhidos e tecle Espaço para selecionar um ou mais espelhos.

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Repositório ebuild do Gentoo

Um segundo passo importante na seleção de espelhos é configurar o repositório ebuild do Gentoo através o arquivo /etc/portage/repos.conf/gentoo.conf. Esse arquivo contém as informações para sincronização necessárias para atualizar a árvore do Portage (a coleção de ebuilds e arquivos relacionados contendo toda a informação que o Portage precisa para baixar e instalar pacotes de software).

A configuração do repositório pode ser feita em alguns passos simples. Primeiro, se ele não existir, crie o diretório repos.conf:

root #mkdir /mnt/gentoo/etc/portage/repos.conf

Depois, copie o arquivo de configuração do repositório fornecido pelo Portage para o recém-criado diretório repos.conf:

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Dê uma olhada com um editor de textos ou usando o comando cat. O arquivo deve estar no formato .ini e se parecer com:

FILE /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes

O valor da variável default sync-uri listada acima irá determinar a localização do espelho baseado em um esquema de rotação. Isso irá ajudar a diminuir o impacto do uso da infraestrutura do Gentoo e prover uma segurança no caso de um espelho específico ficar indisponível. É recomendável que a URI default seja mantida a menos que um espelho local privado do Portage seja usado.

Tip
Para os interessados, a especificação oficial da API de sincronização do plugin do Portage pode ser encontrada no Artigo sobre sincronização do projeto do Portage.

Copie as informações de DNS

Resta ainda uma coisa a ser feita antes de entrar no novo ambiente que é copiar sobre a informação de DNS em /etc/resolv.conf. Isso precisa ser feito para assegurar que a rede ainda funciona mesmo após entrar no novo ambiente. O /etc/resolv.conf contém os servidores de nomes da rede.

Para copiar essa informação, é recomendado passar a opção -L do comando cp. Isso assegura que, se o /etc/resolv.conf for um link simbólico, que o arquivo alvo é copiado em vez do link simbólico em si. De outra forma, no novo ambiente o link simbólico apontaria para um arquivo não existente (pois é muito provável que o alvo do link não estará disponível dentro do novo ambiente).

root #cp -L /etc/resolv.conf /mnt/gentoo/etc/

Montando os sistemas de arquivos necessários

Em alguns momentos, a raiz do Linux será alterada para a nova localidade. Para garantir que o novo ambiente funciona corretamente, alguns sistemas de arquivos precisam estar disponíveis lá também.

Os sistemas de arquivos que precisam estar disponíveis são:

  • /proc/ que é um pseudo sistema de arquivos (ele se parece com arquivos normais, mas na verdade é gerado "no voo") do qual o kernel do Linux expõe informação para o ambiente
  • /sys/ que é um pseudo sistema de arquivos, como o /proc/ o qual era para substituir, sendo mais estruturado que o /proc/
  • /dev/ é um sistema de arquivos normal, parcialmente gerenciadopelo gerenciador de dispositivos do Linux (normalmente o udev), que contém todos os arquivos de dispositivos

A localidade /proc/ será montada em /mnt/gentoo/proc/ enquanto as outras duas são montadas como "bind". Isso significa que, por exemplo, /mnt/gentoo/sys/ será, na verdade, /sys/ (sendo na verdade apenas um segundo ponto de entrada para o mesmo sistema de arquivos) enquanto /mnt/gentoo/proc/ é uma nova montagem ("instância", para usar o termo) do sistema de arquivo.

root #mount -t proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev
Nota
As operações --make-rslave são necessárias para o suporte ao systemd mais tarde na instalação.
Aviso
Se usar uma mídia de instalação que não seja do Gentoo, os passos anteriores podem não ser suficientes. Algumas distribuições criam o /dev/shm como um link simbólico para o /run/shm/ que, após o chroot, torna-se inválido. Fazer do /dev/shm/ uma montagem tmpfs apropriada desde já pode corrigir isso:
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm

Também assegure-se de ajustar o modo para 1777

root # chmod 1777 /dev/shm

Entrando no novo ambiente

Agora que todas as partições estão inicializadas e o ambiente base está instalado, é hora de entrar no novo ambiente de instalação fazendo chroot nele. Isso significa que a sessão irá alterar sua "raiz" (o diretório mais alto que pode ser acessado) do ambiente atual de instalação (CD de instalação ou outra mídia) para o sistema de instalação (as partições inicializadas). Por isso o nome "change root" (trocar a "raiz") ou "chroot".

O chroot é feito em três passos:

  1. A localização raiz é trocada de / (na mídia de instalação) para /mnt/gentoo/ (nas partições) usando o comando chroot
  2. Algumas configurações (aquelas em /etc/profile) são carregadas na memória usando o comando source
  3. O sinal de pronto é trocado para nos ajudar a lembrar que aquela sessão está dentro do ambiente chroot
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) $PS1"

A partir deste ponto, todas as ações feitas afetam imediatamente o novo ambiente de instalação do Gentoo Linux. É claro que a instalação ainda está longe de ser concluída, sendo por isso que ainda temos algumas seções restantes!

Tip
Se a instalação do Gentoo for interrompida a partir deste ponto, deve ser possível 'retomar' a instalação neste ponto. Não há necessidade de reparticionar os discos novamente! Apenas monte a partição root e execute os passos acima iniciando em Copie as informações de DNS para reentrar no ambiente funcional. Isso também é útil para corrigir problemas com o gerenciador de boot. Maiores informações podem ser encontradas no artigo chroot.

Montando a partição de boot

Agora que foi entrado no novo ambiente, é necessário criar e montar a partição /boot. Isso será importante para quando for o momento de compilar o kernel e instalar o gerenciador de boot:

root #mkdir /boot
root #mount /dev/sda2 /boot

Configurando o Portage

Instalando um instantâneo do repositório ebuild da web

O próximo passo é instalar um instantâneo do repositório principal do ebuild. O instantâneo contém uma coleção de arquivos que informa ao Portage sobre quais softwares estão disponíveis para instalação, quais perfis o administrador do sistema pode selecionar, ítens de notícias específicas de um pacote ou perfil etc.

O uso do comando emerge-webrsync é recomendado para os usuários que estão atrás de firewalls restritivos (porque ele usa os protocolos HTTP/FTP para baixar o instantâneo) e economiza banda de rede. Leitores que não tiverem restrições de rede ou de banda podem tranquilamente pular para a próxima seção.

Isso irá baixar o último instantâneo (que é liberado diariamente) de um dos espelhos do Gentoo e instalá-lo no sistema:

root #emerge-webrsync
Nota
Durante essa operação, o emerge-webrsync pode reclamar que o diretório /usr/portage/ não existe. Isso já é esperado e não é motivo para preocupação - a ferramenta irá criar o diretório.

A partir deste ponto, o Portage pode avisar que sejam executadas algumas atualizações recomendadas. Isso é porque alguns pacotes do sistema instalados através do arquivo stage podem ter novas versões disponíveis; o Portage fica sabendo dos novos pacotes através do instantâneo do repositório. As atualizações de pacotes podem ser ignoradas de forma segura por enquanto; as atualizações podem ser realizadas depois que a instalação do Gentoo estiver finalizada.

Opcional: Atualizando o repositório ebuild

É possível atualizar o repositório ebuild do Gentoo para a última versão. O comando emerge-webrsync anterior instalou um instantâneo do Portage bem recente (normalmente tão recente quanto 24 horas) de modo que este passo é totalmente opcional.

Supondo que há necessidade da última atualização dos pacotes (menos de 1 hora), use emerge --sync. Esse comando irá usar o protocolo rsync para atualizar o repositório ebuild do Gentoo (que foi baixada anteriormente através do emerge-webrsync) ao seu estado mais recente.

root #emerge --sync

Em terminais lentos, tais como alguns "framebuffers" ou consoles seriais, é recomendado usar a opção --quiet para agilizar o processo:

root #emerge --sync --quiet

Lendo itens de notícias

Quando o repositório ebuild do Gentoo é sincronizada com o sistema, o Portage pode mostrar ao usuário mensagens similares a seguinte:

CODE O Portage informando ao usuário sobre itens de notícias
 * IMPORTANT: 2 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.

Ítens de notícias foram criados para prover um meio de comunicação para enviar mensagens aos usuários através da árvore do portage. Para gerenciá-las, use eselect news. A aplicação eselect é uma aplicação do Gentoo que provê uma interface de gerenciamento comum voltada para alterações e operações. Nesse caso, o eselect é acionado para usar seu módulo news.

Para o módulo news, três operações são mais utilizadas:

  • Com list, é mostrada uma lista dos itens de notícias disponíveis
  • Com read, os itens de notícias podem ser lidos
  • Com purge, itens de notícias podem ser removidos depois de lidos e não forem ser mais relidos
root #eselect news list
root #eselect news read

Mais informações sobre o leitor de notícias estão disponíveis através de sua página de manual:

root #man news.eselect

Escolhendo o perfil correto

Um perfil (profile) é uma peça fundamental para qualquer sistema Gentoo. Não apenas ele especifica valores padrões para o USE, CFLAGS e outras variáveis importantes, ele também trava o sistema em um dado conjunto de versões de pacotes. Essas configurações são mantidas pelos desenvolvedores do Portage do Gentoo.

Você pode ver qual perfil o sistema está usando com o eselect, agora usando com o módulo profile:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0 *
  [2]   default/linux/amd64/13.0/desktop
  [3]   default/linux/amd64/13.0/desktop/gnome
  [4]   default/linux/amd64/13.0/desktop/kde
Nota
A saída do comando é apenas um exemplo e evolui com o tempo.

Como pode ser visto, há também subperfis de desktops disponíveis para algumas arquiteturas.

Depois de visualizar os perfis disponíveis para a arquitetura amd64, os usuários podem selecionar um perfil diferente para o sistema:

root #eselect profile set 2


No-multilib (não-multilib)

Para selecionar um ambiente 64 bits puro, sem aplicações ou bibliotecas de 32 bits, use um perfil no-multilib:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0 *
  [2]   default/linux/amd64/13.0/desktop
  [3]   default/linux/amd64/13.0/desktop/gnome
  [4]   default/linux/amd64/13.0/desktop/kde
  [5]   default/linux/amd64/13.0/no-multilib

Selecione o perfil no-multilib:

root #eselect profile set 5
root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0
  [2]   default/linux/amd64/13.0/desktop
  [3]   default/linux/amd64/13.0/desktop/gnome
  [4]   default/linux/amd64/13.0/desktop/kde
  [5]   default/linux/amd64/13.0/no-multilib *

systemd

Aqueles que desejarem o systemd como seu sistema de inicialização (init system), deve selecionar um perfil com systemd em alguma parte do nome do perfil:

root #eselect profile set default/linux/amd64/13.0/systemd
root #eselect profile list
Available profile symlink targets:
  [10]  default/linux/amd64/13.0/developer
  [11]  default/linux/amd64/13.0/no-multilib
  [12]  default/linux/amd64/13.0/systemd *
  [13]  default/linux/amd64/13.0/x32
  [14]  hardened/linux/amd64
Tip
Como podemos ver acima, nomes completos de perfis podem ser usados em vez do número associado ao perfil.


Nota
O subperfil developer (desenvolvedor) é específico para o desenvolvimento do Gentoo Linux e não é destinado para uso por usuários casuais.

Atualizando o conjunto @world

Neste ponto, se foi escolhido um novo perfil para o sistema, é interessante atualizar o conjunto @world de modo a estabelecer uma base para o novo perfil.

O passo seguinte é necessário para aqueles que selecionaram um perfil com systemd (uma vez que os arquivos tar de stage oficiais usam o OpenRC como sistema de inicialização default), mas é opcional para os outros perfis:

root #emerge --ask --update --deep --newuse @world
Tip
Se um perfil de ambiente completo de desktop foi selecionado, o tempo necessário para o processo de instalação pode ser bastante longo. Aqueles sem muito tempo para a instalação podem seguir a seguinte 'regra geral': quanto menor o nome do perfil, menos específico o conjunto @world; quanto menos específico o conjunto @world, menos pacotes o sistema irá requerer. Em outras palavras:
  • selecionar default/linux/amd64/13.0 irá requerer bem poucos pacotes para atualizar, enquanto
  • selecionar default/linux/amd64/13.0/desktop/gnome/systemd irá requerer muitos pacotes para a instalação uma vez que o sistema de inicialização será trocado do OpenRC para systemd e o ambiente de trabalho GNOME será instalado.

Configurando as variáveis USE

A USE é uma das mais poderosas variáveis que o Gentoo provê aos seus usuários. Muitos programas podem ser compilados com ou sem suporte para certos itens. Por exemplo, alguns programas podem ser compilados com suporte ao GTK+ ou ao QT. Outros podem ser compilados com ou sem suporte ao SSL. Alguns programas podem até ser compilados com suporte a framebuffer (svgalib) em vez de suporte ao X11 (X-server).

A maioria das distribuições compilam seus pacotes com o máximo possível de suporte, aumentando o tamanho dos programas e o tempo de carga, sem contar o enorme número de dependências. Com o Gentoo, os usuários podem definir com quais opções um pacote deve ser compilado. É aqui que a USE entra em cena.

Na variável USE os usuários definem palavras-chave que serão mapeadas em opções de compilação. Por exemplo, ssl irá compilar suporte ao SSL em programas que o suportam. -X irá remover suporte ao servidor X (note o sinal de menos na frente). gnome gtk -kde -qt5 irá compilar programas com suporte ao GNOME (e GTK+) mas não ao KDE (e Qt), fazendo o sistema ajustado para o GNOME (se a arquitetura o suportar).

Os padrões para as configurações USE estão armazenados nos arquivos make.defaults do perfil do Gentoo usado pelo sistema. O Gentoo usa um (complexo) sistema de herança para seus perfis, no qual ainda não nos aprofundamos neste estágio. O modo mais fácil de checar as configurações USE ativas é executar emerge --info e selecionar a linha que começa com USE:

root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
Nota
O exemplo acima está truncado, a lista real das variáveis USE é muito, muito maior.

Uma descrição completa das flags USE disponíveis pode ser encontrada no sistema em /usr/portage/profiles/use.desc.

root #less /usr/portage/profiles/use.desc

Dentro do comando less, a rolagem pode ser feita usando as teclas e , e sair pressionando q.

Como exemplo, mostramos uma configuração USE para um sistema baseado no KDE com suporte a DVD, ALSA e gravação de CD:

root #nano -w /etc/portage/make.conf
FILE /etc/portage/make.confHabilitando USE para um sistema baseado em KDE com suporte a DVD, ALSA e gravação de CD
USE="-gtk -gnome qt5 kde dvd alsa cdr"

Quando a USE é definida em /etc/portage/make.conf ela é "adicionada" (ou "removida" se a flag iniciar com o sinal -) da lista padrão. Usuários que quiserem ignorar toda a configuração padrão USE e gerenciá-la completamente por conta devem iniciar a definição USE com -*:

FILE /etc/portage/make.confIgnorando as flags USE padrão
USE="-* X acl alsa"
Aviso
Mesmo sendo possível, definir -* (como no exemplo acima) é desencorajado pois USE flags default cuidadosamente escolhidas podem ter sido configuradas em alguns ebuild para evitar conflitos e outros erros.

Opcional: Usando systemd como o sistema init

O restante deste Manual do Gentoo foca no OpenRC (o sistema de init tradicional do Gentoo) como sistema de init default. Se for desejado o systemd ou se o leitor está planejando instalar o Gnome 3.8 ou mais recente (que requer o systemd), por favor consulte a página systemd. Ela contém instruções equivalentes às instruções nas seções seguintes deste Manual. Especificamente, ela irá guiar o leitor pelos vários comandos (systemctl) do sistema init e serviços específicos do systemd (tais como timedatectl, hostnamectl, etc) necessários a se obter um ambiente systemd funcional.

Nota
Certas aplicações são fortemente dependentes do ecossistema de software GNOME e, consequentemente, dependentes do systemd. Leitores incertos se o ambiente desktop GNOME será utilizado poderão migrar para um perfil systemd mais tarde.

Fuso horário

Selecione o fuso horário para o sistema. Veja os fusos horários disponíveis em /usr/share/zoneinfo/, e então escreva-o no arquivo /etc/timezone.

root #ls /usr/share/zoneinfo

Suponha que o fuso horário escolhido seja Brazil/East:

root #echo "Brazil/East" > /etc/timezone

Por favor evite os fusos horários /usr/share/zoneinfo/Etc/GMT* pois seus nomes não correspondem aos fusos esperados. Por exemplo, GMT-8 é na verdade GMT+8.

A seguir, reconfigure o pacote sys-libs/timezone-data, o que irá atualizar o arquivo /etc/localtime para nós, baseado no /etc/timezone. O arquivo /etc/localtime é usado pela biblioteca C do sistema para saber em qual fuso horário o sistema está.

root #emerge --config sys-libs/timezone-data

Configurando locais

A maioria dos usuários irá querer usar apenas um ou dois locais em seus sistemas.

Locais especificam não apenas a língua que o sistema deve usar para interagir com o usuário, mas também as regras para ordenar strings, mostrar data e hora etc.

Os locais que um sistema deve suportar devem ser entrados em /etc/locale.gen.

root #nano -w /etc/locale.gen

Os seguintes locais são um exemplo para se obter inglês (Estados Unidos) e alemão (Alemanha) com os correspondentes formatos de caracteres (como o UTF-8).

FILE /etc/locale.genHabilitando os locais US e DE com os formatos de caracteres apropriados
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
Aviso
Sugerimos fortemente usar pelo menos um local UTF-8 pois algumas aplicações podem requerê-lo.

O próximo passo é executar locale-gen. Isso irá regerar todos os locais especificados no arquivo /etc/locale.gen.

root #locale-gen

Para verificar que os locais selecionados estão agora disponíveis, execute locale -a.

Uma vez feito, é agora hora de ajustar a configuração geral de local do sistema. Novamente usamos o eselect para isso, agora com o módulo locale.

Com o eselect locale list, os alvos disponíveis são mostrados.

root #eselect locale list
Available targets for the LANG variable:
  [1] C
  [2] POSIX
  [3] en_US
  [4] en_US.iso88591
  [5] en_US.utf8
  [6] de_DE
  [7] de_DE.iso88591
  [8] de_DE.iso885915
  [9] de_DE.utf8
  [ ] (free form)

Com eselect locale set VALOR o local correto pode ser ajustado:

root #eselect locale set 9

Manualmente, isso pode ser conseguido através do arquivo /etc/env.d/02locale:

FILE /etc/env.d/02localeAjustando manualmente as definições de locais do sistema
LANG="de_DE.UTF-8"
LC_COLLATE="C"

Certifique-se que um local foi configurado, ou o sistema irá mostrar mensagens de aviso e erro durante a construção do kernel e outras implantações de software mais tarde na instalação.

Agora recarregue o ambiente:

root #env-update && source /etc/profile && export PS1="(chroot) $PS1"

Nós fizemos um Guia de localização completo para ajudar o usuário através do processo. Outro artigo interessante é o guia UTF-8 com informações muito específicas para habilitar o UTF-8 no sistema.