A implementação desse tipo de recurso é bastante difícil, tanto no lado "chamando para casa" (para ver se houve uma atualização) quanto no lado "atualizando no local":
- o software em execução no sistema do usuário precisa saber como verificar se uma versão mais nova está disponível (o que significa adicionar código de rede ao seu aplicativo, o que pode não ter outro motivo para usar a rede);
- o software precisa funcionar independentemente das condições de rede em que se encontra (obviamente quando está totalmente off-line; mas também não deve falhar com erros estranhos quando se encontra parcialmente conectado);
- você precisa ter alguma maneira de decidir se uma versão mais nova está disponível (como você compara as versões quando os usuários criam a partir do repositório de origem?);
- você precisa ter um servidor em algum lugar com o lado do servidor, o que também pode ser necessário desenvolver;
- você precisa garantir que as atualizações não sejam comprometidas, nem no servidor nem através de um ataque man-in-the-middle (portanto, é necessário usar TLS e / ou assinatura strong de algum tipo);
- você precisa disponibilizar atualizações em um formulário que possa ser usado por seus usuários; eles podem ter sido construídos a partir da fonte inicialmente, mas não há garantia de que o sistema no qual eles estão rodando tem o que for necessário para reconstruir uma versão mais nova a partir da fonte - então você precisa fornecer binários (para todas as possíveis plataformas de destino). / li>
(Esta não é uma lista completa).
Estes são todos os problemas que foram tratados por distribuições, por isso é mais fácil deixar que as distribuições cuidem das coisas. Além disso, como o Kusalananda explicou, os usuários que se preocupam com a execução da versão mais recente de um software provavelmente se importam o suficiente sobre isso para seguir pelo menos uma lista de discussão de anúncios, para que eles sejam notificados dessa maneira.
Outro aspecto a considerar é que um número significativo de pessoas não quer que o software que eles usam para telefonar para casa seja o que for. Algumas distribuições chegam a alguns limites para remover código que faz isso do software que distribuem, ou até mesmo outras partes do software que podem ser usadas para rastrear seu uso (por exemplo, documentação). que carrega imagens ou fontes ou CSS da web). Veja todas as tags de "violação de privacidade" em Lintian do Debian , por exemplo.
Tudo isso explica por que existem tão poucos softwares que contêm os mecanismos necessários para fornecer informações de atualização, e menos ainda que podem se atualizar.
Existem outras maneiras de resolver o "problema": desenvolvedores de software que usam um sistema de CI geralmente podem estender isso para fornecer compilações "noturnas" em uma forma consumível de algum tipo (como pacotes); os usuários interessados podem configurar seus próprios sistemas de compilação para obter regularmente fontes atualizadas de software com os quais se importam (isso é bastante comum em contextos corporativos); ou você pode configurar pacotes no estilo AUR que se constroem a partir da fonte mais recente.