Gentoo: Sincronização com Git e Automação via Systemd

Publicado por Xerxes em 09/02/2026

[ Hits: 50 ]

 


Gentoo: Sincronização com Git e Automação via Systemd



Manter a árvore do Portage atualizada é essencial no Gentoo, mas o método padrão (rsync) pode ser lento. Nesta dica, vamos migrar o repositório principal para Git e agendar uma sincronização automática às 5h da manhã com Systemd Timers.

1. Ferramentas Necessárias

Para começar, instale o git para a sincronização incremental e o eix para buscas instantâneas:

sudo emerge --ask dev-vcs/git app-portage/eix

2. Migrando para Git

O Git é mais performático que o rsync por baixar apenas as mudanças reais nos arquivos. Crie o arquivo de configuração em /etc/portage/repos.conf/gentoo.conf:

[gentoo]
location = /var/db/repos/gentoo
sync-type = git
sync-uri = https://github.com/gentoo-mirror/gentoo.git
auto-sync = yes

Agora, converta o repositório atual removendo a árvore antiga e sincronizando do zero:

sudo rm -rf /var/db/repos/gentoo

sudo eix-sync

3. Automação com Systemd

Crie o arquivo de serviço /etc/systemd/system/eix-sync.service para definir a tarefa:

[Unit]
Description=Sincronizacao Diaria do Portage e Eix
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/eix-sync -q

Crie o timer em /etc/systemd/system/eix-sync.timer para agendar o horário:

[Unit]
Description=Roda o eix-sync diariamente as 5 da manha

[Timer]
OnCalendar=*-*-* 05:00:00
Persistent=true

[Install]
WantedBy=timers.target

4. Ativação e Validação

Recarregue as configurações e ative o agendamento:

sudo systemctl daemon-reload

sudo systemctl enable --now eix-sync.timer

Para validar se o sistema realmente agendou a tarefa, use o comando essencial:

sudo systemctl list-timers eix-sync.timer

Observe os campos NEXT (próxima execução) e LEFT (quanto tempo falta) na saída do comando.

Diferente de scripts no OpenRC, o Systemd Timer é assíncrono, o que garante que o processo de manutenção não trave o boot ou o login. Além disso, o parâmetro After=network-online.target faz com que o serviço aguarde a conexão com a internet antes de iniciar.
Outras dicas deste autor

SeaMonkey no Ubuntu [Resolvido]

Colocando hotcorner no COSMIC para exibir "workspaces"

Não seja mais rastreado na web

Distribuição CentOS sem rede [Resolvido]

Instalando Debian Sid (unstable)

Leitura recomendada

Iniciando TeamViewer 10 automaticamente no Ubuntu 12.04 LTS

Alterando o gerenciador de login no openSUSE

Atheros (Ethernet) device 1091 (rev 10) no Slackware 14 (64 bits)

Conhecendo o apt-build

O que fazer após instalar Fedora 34

  

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