Gentoo Logo

1.  Funcionalidades do Portage

O Portage tem várias funções adicionais que tornam sua experiência com o Gentoo ainda melhor. Várias dessas funcionalidades dependem de algumas ferramentas de software que melhoram performance, confiabilidade, segurança ...

Para ligar ou desligar algumas funcionalidades do Portage você precisa editar a variável FEATURES do arquivo /etc/make.conf, que contém as várias palavras-chave de funcionalidades, separadas por espaços em branco. Em vários casos você também precisará instalar uma ferramenta adicional de qual a funcionalidade depende.

Nem todas as funções que o Portage suporta estão listadas aqui. Para uma lista completa, consulte a página de manual do make.conf:

Listagem de código 1.1: Consultando a página de manual do make.conf

$ man make.conf

Para descobrir o que está ajustado por padrão em FEATURES, rode emerge --info e procure pela variável FEATURES ou pegue-a com o grep:

Listagem de código 1.1: Descobrindo o que já está na variável FEATURES

$ emerge --info | grep FEATURES

1.  Compilação distribuída

Usando distcc

O distcc é um programa usado para distribuir compilações através de várias máquinas, não necessariamente idênticas, em uma rede. O cliente de distcc envia toda informação necessária para os servidores de distcc (rodando distccd) para que eles possam compilar pedaços de código fonte para o cliente. O resultado final é um tempo de compilação menor.

Você pode encontrar mais informações sobre o distcc (e como fazer com que funcione com o Gentoo em nossa Documentação de distcc do Gentoo.

Instalando o distcc

O distcc vem com um monitor gráfico para controlar tarefas que o seu computador está enviando para compilação. Se você usa Gnome, coloque 'gnome' em sua variável de USE. Senão, se você não usa gnome e ainda quiser ter o monitor, você deve colocar 'gtk' na variável de USE.

Listagem de código 1.1: Instalando o distcc

# emerge distcc

Ativando suporte no Portage

Adicione distcc à variável FEATURES dentro de /etc/make.conf. A seguir, edite a variável MAKEOPTS de acordo com sua preferência. Um guia padrão é colocar "-jX" onde X é o número de CPUs rodando distccd (incluindo o host atual) mais um, mas você pode ter resultados melhores com outros números.

Agora rode distcc-config e digite a lista de servidores de distcc disponíveis. Por simples exemplo, presumimos que os servidores de DistCC disponíveis são 192.168.1.102 (o host atual), 192.168.1.103 e 192.168.1.104 (dois hosts remotos):

Listagem de código 1.1: Configurando o distcc para usar os três servidores de distcc disponíveis

# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"

Não se esqueça de rodar o daemon de distccd também:

Listagem de código 1.1: Iniciando os daemons de distccd

# rc-update add distccd default
# /etc/init.d/distccd start

1.  Fazendo cachê da compilação

Sobre o ccache

O ccache é um cachê para compilações rápidas. Quando você compila um programa, ele fará cachê de resultados intermediários para que, quando quer que 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.

Se você estiver interessado no funcionamento do ccache, por favor visite a homepage do ccache.

Instalando o ccache

Para instalar o ccache, rode emerge ccache:

Listagem de código 1.1: Instalando o ccache

# emerge ccache

Ativando suporte no Portage

Abra o /etc/make.conf e coloque ccache na variável FEATURES. A seguir, adicione a variável chamada CCACHE_SIZE e ajuste-a para "2G":

Listagem de código 1.1: Editando o CCACHE_SIZE no /etc/make.conf

CCACHE_SIZE="2G"

Para ver se o ccache está funcionando, peça ao ccache que dê suas estatísticas. Já que o Portage usa um diretório de home de ccache diferente, você também precisa configurar a variável CCACHE_DIR:

Listagem de código 1.1: Vendo estatísticas do ccache

# CCACHE_DIR="/var/tmp/ccache" ccache -s

O local /var/tmp/ccache é o diretório home de ccache padrão do Portage; se você quiser alterar este ajuste, você pode configurar a variável CCACHE_DIR no /etc/make.conf.

No entanto, se você rodar ccache, ele irá usar o local padrão ${HOME}/.ccache, motivo pelo qual você precisou configurar a variável CCACHE_DIR na hora de pedir as estatísticas de ccache (do Portage).

Usando o ccache em compilações alheias ao Portage

Se você quiser usar o ccache para compilações alheias ao Portage, adicione /usr/lib/ccache/bin ao começo de sua variável PATH (antes de /usr/bin). Isto pode ser feito editando /etc/env.d/00basic, que é o primeiro arquivo ambiental que define a variável PATH:

Listagem de código 1.1: Editando /etc/env.d/00basic

PATH="/usr/lib/ccache/bin:/opt/bin"

1.  Suporte a pacotes binários

Criando pacotes pré-construídos

O Portage suporta a instalação de pacotes pré-construídos. Embora o Gentoo não forneça pacotes construídos (fora os snapshots de GRP), pode-se tornar o Portage totalmente ciente de pacotes pré-construídos.

Para criar um pacote pré-construído você pode usar o comando quickpkg se o pacote já estiver instalado em seu sistema, ou emerge com as opções --buildpkg ou --buildpkgonly.

Se você quiser que o Portage crie pacotes pré-construídos de cada pacote que você instalar, adicione buildpkg à variável FEATURES.

Suporte estendido para criar estágios de pacotes pré-construídos pode ser obtido com o catalyst. Para mais informações sobre o catalyst por favor leia o Manual de Referência do Catalyst e o Guia de perguntas freqüentes do Catalyst.

Instalando pacotes pré-construídos

Embora o Gentoo não forneça um, você pode criar um repositório central onde você grava pacotes pré-construídos. Se você quiser usar este repositório, você precisa tornar o Portage ciente dele fazendo com que a variável PORTAGE_BINHOST aponte para ele. Por exemplo, se os pacotes pré-construídos estiverem em ftp://buildhost/gentoo:

Listagem de código 1.1: Configurando PORTAGE_BINHOST no /etc/make.conf

PORTAGE_BINHOST="ftp://buildhost/gentoo"

Quando você quiser instalar um pacote pré-construído, adicione a opção --getbinpkg ao comando emerge junto com a opção --usepkg. A primeira opção diz ao emerge para baixar os pacotes pré-construídos do servidor definido anteriormente, enquanto a segunda pede ao emerge que tente instalar o pacote pré-construído primeiro antes de baixar as fontes e compilá-las.

Por exemplo, para instalar o gnumeric com pacotes pré-construídos:

Listagem de código 1.1: Instalando um pacote pré-construído do gnumeric

# emerge --usepkg --getbinpkg gnumeric

Mais informações sobre as opções dos pacotes pré-construídos do emerge podem ser encontradas na página de manual do emerge:

Listagem de código 1.1: Lendo a página de manual do emerge

$ man emerge

Atualizado 1 de dezembro de 2005

A versão original deste documento foi atualizada em 28 de março de 2012

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.