Acelere a compilação no Gentoo com distcc (guia para Systemd)

Publicado por Xerxes em 21/02/2026

[ Hits: 104 ]

 


Acelere a compilação no Gentoo com distcc (guia para Systemd)



Se você usa o Gentoo em um computador mais modesto, sabe que compilar pacotes pesados pode levar horas ou até dias. Mas e se você tiver outro computador mais potente (ou um servidor) na mesma rede? É aí que entra o distcc (Distributed C/C++ Compiler).

O distcc permite que você use o poder de processamento de outras máquinas para compilar seus programas muito mais rápido.

Como o distcc funciona?

Imagine que compilar um programa é como construir uma casa de tijolos:

  • Seu PC Fraco (O Mestre de Obras): Ele tem a planta da casa e organiza o trabalho, mas não tem muita força.
  • Seu PC Forte (O Ajudante): Ele tem muita força e está ocioso esperando ordens.

Com o distcc, o PC Fraco prepara o código-fonte e envia pela rede para o PC Forte. O PC Forte compila esse código usando todo o seu poder de processamento e devolve o arquivo binário pronto. O PC Fraco apenas junta as partes. O tempo de compilação diminui bastante.

Requisitos Básicos

1. Ambas as máquinas precisam estar na mesma rede local (ou conectadas via VPN, como o Tailscale).
2. Ambas devem ter a mesma versão do GCC instalada.
3. Este guia assume que ambas usam Systemd.

Passo 1: Configurando o PC Forte (O Ajudante)

Esta é a máquina que vai receber o trabalho pesado (por exemplo, um PC com 12 threads).

1. Instale o pacote:

emerge --ask sys-devel/distcc

2. Por padrão, o Gentoo configura o distcc para escutar apenas a si mesmo (127.0.0.1). Precisamos sobrescrever isso no arquivo do Systemd. Edite o arquivo:

sudo nano /etc/systemd/system/distccd.service.d/00gentoo.conf

3. Modifique o arquivo para que fique exatamente assim (substitua a faixa de IP pela da sua rede, ex: 192.168.2.0/24):

[Service]
Environment="ALLOWED_SERVERS=127.0.0.1"
ExecStart=
ExecStart=/usr/bin/distccd --no-detach --daemon --port 3632 -N 15 --allow 192.168.2.0/24

(Nota: O ExecStart= vazio é obrigatório no Systemd para limpar o comando original antes de injetar o novo).

4. Recarregue o Systemd e inicie o serviço:

sudo systemctl daemon-reload

sudo systemctl enable --now distccd

Passo 2: Configurando o PC Fraco (O Mestre de Obras)

Esta é a máquina onde você vai rodar o emerge (por exemplo, um notebook com 4 threads).

1. Instale o pacote:

emerge --ask sys-devel/distcc

2. Defina quem vai ajudar: Informe o IP da máquina forte ao Portage. É vital rodar isso como sudo ou root para que o sistema inteiro (e não apenas seu usuário) enxergue a configuração:

sudo distcc-config --set-hosts "IP_DA_MAQUINA_FORTE localhost"

3. Abra o seu make.conf:

sudo nano /etc/portage/make.conf

4. Adicione distcc na variável FEATURES (junto com as que já existirem, separadas por espaço):

FEATURES="getbinpkg distcc"

5. Ajuste o MAKEOPTS. A fórmula ideal é: -j[Soma de todas as threads da rede] -l[Threads apenas do PC Fraco] Se o PC Forte tem 12 threads e o PC Fraco tem 4, a soma é 16. O parâmetro -l (load average) serve como um freio de emergência: ele avisa ao Portage para não iniciar novos trabalhos locais se o PC Fraco já estiver no limite das suas 4 threads, evitando travamentos caso a rede caia.

MAKEOPTS="-j16 -l4"

Passo 3: Como saber se está funcionando?

No PC Fraco, coloque algo para compilar. Em seguida, abra outro terminal e rode:

distccmon-text 2

Você verá, a cada 2 segundos, a lista de arquivos de código sendo enviados magicamente para o IP do seu PC Forte!

Para acompanhar em tempo real no PC Forte (ver os arquivos chegando e sendo processados), use o comando:

journalctl -u distccd -f

Outras dicas deste autor

Ativando o Compiz no Fedora MATE + Compiz

Como instalar plugin do JAVA da Oracle no Slackware

Não consegue acessar phpMyAdmin no Fedora?

Steam no Linux Mint - Erro: Couldn't set up Steam data - please contact technical support [Resolvido]

Baixar e ler mangás grátis no Linux e no Android

Leitura recomendada

Erro na atualização do Fedora 11 (UnicodeDecodeError)

Ubuntu Ultimate Edition 1.4 (DVD)

Cfdisk - Editar partições em modo texto

Alterando o Splash Screen (tela de apresentação) no KDE

Bloqueando máquinas pelo endereço MAC da placa de rede

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts