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

Publicado por Xerxes em 21/02/2026

[ Hits: 97 ]

 


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

fish shell no Slackware

Usando o --load-average no Gentoo para evitar OOM Kill

Visualizador de Áudio no Terminal

GNOME lento: uma experiência [Resolvido]

Conflitos de multilib no Funtoo [Resolvido]

Leitura recomendada

Reconfigurar a impressora no Ubuntu

Servidor Proxy para uso do APT e ZYPPER - Configuração

Aviso de problemas por causa do Typora [Resolvido]

Instalando Driver NVIDIA no Debian 10 Buster para Iniciantes

Alterando ícones no Ubuntu Linux (válido para qualquer versão)

  

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