Por que existem pacotes de snap - existe uma necessidade real?

11

Suposições

Honestamente, eu não sei muito sobre snap-packages - mas isso é irrelevante para essa questão - veja abaixo. Eu assumo que o sistema é significativamente diferente do existente.

A mudança faz sentido?

Existe uma necessidade real, strong o suficiente? Isto é - existe um novo caso de uso, que é importante o suficiente para desenvolver um novo formato - e a infraestrutura associada?

Não era viável alterar o método atual para cobrir os novos casos de uso também?

Ou estou perdendo o ponto?

É possível que o que eu vejo seja principalmente marketing - novos nomes e apresentações para mudanças técnicas mínimas, para ter uma chance de que qualquer corpo o assuma como "novo e melhor" e possa ser realmente usado. Além disso, pode ser que os novos pacotes estejam tão intimamente baseados no formato existente que é principalmente uma mudança na apresentação para o usuário. Isso poderia ser uma boa solução, é claro. Neste caso, esta questão não teria muita relevância.

Então, espero que ainda seja útil o suficiente para responder a aspectos colaterais. Apenas deixe-me saber se a pergunta não é útil ou confusa para novos usuários, estou feliz em excluí-la.

Então, por que eles existem?

Antecedentes

Minha primeira reação foi "Isso não faz sentido!"

Isso é semelhante a uma situação em que, no site de física, alguém perguntou, infeliz, por que ninguém discute suas brilhantes novas idéias em respostas. Parecia strongmente idéias idiotas; Tão longe do conhecimento físico real que era difícil encontrar um ponto para começar. Escrevi uma resposta que não tocou em suas idéias com uma única palavra, mas expliquei por que não se discutia apenas idéias assumidas - e não o primeiro caso disso. A resposta estava realmente chegando ao ponto, eu acho.

Se minhas suposições estivessem certas, esse caso é semelhante.

Mas então, talvez não - vamos ver.

    
por Volker Siegel 15.06.2016 / 20:19

2 respostas

16

Sim, existe uma necessidade real.

Houve uma necessidade real de algo assim desde a primeira vez que um software dependeu de outro.

Vamos deixar isso claro:

O gerenciamento de dependências é difícil .

Existe uma razão pela qual é chamado de dependência . Sistemas de empacotamento como RPM e Debian foram criados com a intenção de evitar o inferno da dependência. No entanto, alguém deve pagar o custo:

  1. No Windows, onde os programas agrupam suas dependências, o usuário precisa cuidar dos upgrades (e de todos os problemas de segurança por falta deles). Se eu o dev quiser a versão X de alguma coisa para o meu aplicativo, simples: eu forneço o aplicativo para ele. Agora, como faço para lidar com atualizações?
  2. Na maioria das distribuições Linux (seguindo Debian ou Red Hat), onde um programa pode depender de software do repositório, um programa do repositório deve depender do software do repositório. Se eu quero a versão X de alguma coisa para meu aplicativo, e a distro fornece X, simples: eu dependo dela. E se a distro não? Então: ???
    • Adicionar várias versões à distro aumenta a carga no mantenedor
    • Perder a capacidade de usar a versão de escolha de dependências aumenta a carga do desenvolvedor
    • Perder a capacidade de usar a versão de escolha de aplicativos frustra o usuário

Existe uma perda considerável de liberdade em ambos os métodos.

E é aí que os snaps aparecem: eles permitem que o desenvolvedor inclua a versão X e deixe o sistema de empacotamento gerenciar as atualizações. Quem paga o custo? O usuário:

  • , exigindo mais espaço.
  • colocando-os em risco devido ao fato de um desenvolvedor descuidado não ter reconstruído seus snaps quando uma dependência é corrigida.

Que benefícios eu recebo em troca?

  • Além da segurança por meio de atualizações (que, francamente, não são suficientes para as pessoas se importarem), o usuário não precisa se preocupar com dependências com snaps. A palavra geralmente perde significado.
  • Além das atualizações de segurança, o desenvolvedor de software não precisa se preocupar em fazer com que os usuários instalem as dependências corretas.
por muru 15.06.2016 / 21:24
1

Um recurso específico de snaps que pode ser útil é a capacidade de escolher um canal para desenvolvedores que forneçam mais de um canal, como release , candidato , mestre , etc.

Por exemplo, clicar no botão Canal para nextcloud exibirá a caixa de diálogo em a captura de tela abaixo.

Os outros pontos de venda strongs são o isolamento, a imutabilidade e o sandbox, que são controlados por um contexto da política de segurança , que permite definir permissões por aplicativo, também chamadas de 'plugs', por exemplo:

  • locais de leitura / gravação
  • acesso ao armazenamento removível
  • países em que o snap está na lista de permissões / na lista negra
  • acesso à rede
  • câmera, impressora, joystick, localização GPS
  • configurações do sistema
  • ... lista completa de interfaces instantâneas

A abordagem imita até certo ponto os pacotes de aplicativos MacOS e o sandbox de aplicativos do Android com permissões e provedores / receptores de conteúdo.

    
por ccpizza 03.06.2018 / 11:27