Gentoo: Sincronização com Git e Automação via Systemd
Dica publicada em Linux / Configuração
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 (
Agora, converta o repositório atual removendo a árvore antiga e sincronizando do zero:
Crie o timer em
Para validar se o sistema realmente agendou a tarefa, use o comando essencial:
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.
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 ogit 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.