No systemd (CentOS8) notei dnf
aparecer nos logs ( /var/log/messages
) mesmo depois disso dnf remove dnf-automatic
. Eu descobri um timer rodando ( systemctl list-unit-files --type=timer
) para dnf-makecache.timer
.
O melhor que consegui encontrar online é que o dnf-makecache "atualiza Repo Caches". Ok, mas o que isso realmente significa? Por que os caches de repositório precisam ser atualizados a cada hora? Isso não aconteceria de qualquer maneira se você usasse a atualização manualmente com dnf update
?
Falharia dnf update
ou não obteria as versões mais recentes se dnf-makecache
não fosse atualizado? Ou isso é algo que complementa dnf-automatic
e não é necessário se não estiver usando o automático? IMO: se for esse o caso, deveria ter sido removido quando dnf-automatic
foi removido.
Negativos/Contras de desativar este temporizador com systemctl disable dnf-makecache.timer
e systemctl stop dnf-makecache.timer
?
Responder1
Ok, mas o que isso realmente significa?
Isso significa que o índice remoto de pacotes é baixado para o cache de arquivos local, a fim de acelerar dnf
os comandos subsequentes.
Por que os caches de repositório precisam ser atualizados a cada hora?
Isso é feito por conveniência e aceleração do dnf
comando. Sempre que você executa dnf install
o comando, por exemplo, ele precisa ter metadados "frescos" para repositórios. Sem ele, há grandes chances de ter que esperar pela atualização dos metadados ao executar dnf
comandos interativamente.
Observe que, apesar do cronômetro estar definido para cada 1 hora, o tempo de execução efetivo não é mais frequente do que a cada 3 horas. Isso é mais um bug, que é detalhadoaqui.
Isso não aconteceria de qualquer maneira se você usasse a atualização manualmente com atualização dnf?
Sim, por padrão isso aconteceria de qualquer maneirase os metadados forem considerados obsoletos. Ou seja, excedeu a vida útil padrão de 6 horas (a definição por repositório pode substituir esse TTL). Isso nunca aconteceria com um repo se sua definição tivesse metadata_expire=-1
.
A atualização do dnf falharia ou não obteria as versões mais recentes se o dnf-makecache não estivesse sendo atualizado?
Não, não iria falhar. Embora você possa dizer que poderia ser um pouco mais confiável, desde que os metadados já estejam lá e a conexão de rede esteja instável.
Ou isso é algo que complementa o dnf-automatic e não é necessário se não estiver usando o automático?
Ele complementa ambos dnf
e dnf-automatic
porque ambos terão maior chance de serem executados com novo cache de metadados instalado e, portanto, executados mais rapidamente.
Negativos / Contras de desabilitar este temporizador com systemctl disable dnf-makecache.timer e systemctl stop dnf-makecache.timer?
Comandos mais lentos dnf
/espera interativa para instalação e atualizações. A menos que você acompanhe o artigo e ajuste:
metadata_timer_sync=3600
o cronômetro é bastante ineficaz e não traz muitos benefícios.
PS: você faz muitas perguntas, mas nestas comunidades normalmente você deve fazer uma :)
Por favor consulte man dnf
e man dnf.conf
. Aqueles que corrigem a documentação não devem fazê-lo em vão.
Responder2
Como meus servidores centos 8.1 ficam atrás de um firewall e de um proxy limitado, o dnf-makecache-timer gera repetidamente erros irritantes. Parece que ele usa uma lista dinâmica aleatória de servidores. Não consigo adicionar a lista branca de proxy confiável. Isto também seriacontranossas diretrizes de segurança.
Com o yum houve a possibilidade de definir uma lista de servidores que serão utilizados e respeitados em (provavelmente) todas as ações dos gerenciadores de pacotes: mirrorlist=… e include_only=… .
Não consegui encontrar nenhuma solução ou configuração funcional para limitar os servidores que o temporizador dnf-makecache usa.
Estranhamente, a chamada da linha de comando nunca falhou quando tentei.
Pelo que entendi as perguntas legítimas implícitas (no meu entendimento atual):
“Não preciso, não quero, (no nosso caso) gera erros que não consigo controlar: como posso desativá-lo?
Vou responder aqui:
Adicione na [main]
-Seção de/etc/dnf/dnf.conf
metadata_timer_sync=0
conforme indicado na página dnf.conf - man:
Use 0 to completely disable automatic metadata synchronizing.