Por que existem pacotes snap - existe uma necessidade real?

11

Premissas

Honestamente, eu não sei muito sobre snap-packages - mas isso é irrelevante para esta pergunta - veja abaixo. Presumo que o sistema seja significativamente diferente do existente.

A mudança faz sentido?

Existe uma necessidade real, forte o suficiente? Ou seja - existe um novo caso de uso, importante o suficiente para desenvolver um novo formato - e a infraestrutura associada?

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

Ou estou perdendo o objetivo?

É possível que o que eu vejo seja principalmente marketing - novos nomes e apresentações para uma mudança técnica mínima, para ter a chance de que qualquer organismo a assuma como "nova e melhor" e que possa realmente ser usada. Além disso, pode ser que os novos pacotes sejam tão intimamente baseados no formato existente que é principalmente uma alteração na apresentação ao usuário. Essa poderia ser uma boa solução, é claro. Nesse caso, essa pergunta não teria muita relevância.

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

Então, por que eles existem?


fundo

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 novas e brilhantes idéias em respostas. Parecia fortemente idéias malucas; Tão longe do conhecimento físico real que era difícil encontrar um ponto para começar. Eu escrevi uma resposta que não tocou suas idéias com uma única palavra, mas expliquei por que alguém simplesmente não discutia a hipótese de assumir idéias malucas - e não o primeiro caso disso. A resposta foi realmente acertar o ponto, eu acho.

Se minhas suposições estavam corretas, este caso é semelhante.

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

Volker Siegel
fonte
Há uma votação apertada dizendo "principalmente com base em opiniões" - isso significa que as respostas devem ser baseadas em opiniões? Isso seria basicamente uma resposta em si, pois significa que não há consenso estabelecido de que a mudança é necessária. Portanto, haveria argumentos pró e contra; Isso significaria que minha pergunta é realmente muito direta e mais útil do que eu esperava!
Volker Siegel
2
Votei para reabrir esta pergunta. É realmente perguntar por que snaps foram introduzidos, quando os gerenciadores de pacotes já existiam e o Ubuntu (e outros sistemas operacionais) já os possuíam. Então, você está certo: se essa fosse realmente uma pergunta primariamente baseada em opiniões, isso significaria que nenhuma resposta poderia ser dada com base principalmente em fatos e experiências. No entanto, como você viu na excelente resposta de muru , esse não é o caso. Quando (ou mesmo se) os snaps devem ser usados ​​ainda é algo sobre o qual as pessoas podem ter principalmente discussões baseadas em opiniões, mas não foi isso que aconteceu.
Eliah Kagan

Respostas:

17

Sim, existe uma necessidade real.

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

Vamos deixar isso claro:

Gerenciar dependências é difícil .

Há uma razão para isso ser chamado de dependência do inferno . Sistemas de empacotamento como RPM e Debian foram criados com a intenção de evitar o inferno das dependências. No entanto, alguém deve pagar o custo:

  1. No Windows, onde os programas agrupam suas dependências, o usuário precisa cuidar das atualizações (e de qualquer problema de segurança por falta dela). Se o desenvolvedor deseja a versão X de algo para o meu aplicativo, simples: eu o forneço. 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 do software do repositório, um programa do repositório deve depender do software do repositório. Se eu quiser a versão X de algo para o meu aplicativo e a distribuição fornecer X, simples: dependo disso. E se a distro não? Então: ???
    • Adicionar várias versões à distribuição aumenta a carga no mantenedor
    • Perder a capacidade de usar a versão de escolha das dependências aumenta a carga no desenvolvedor
    • Perder a capacidade de usar a versão de escolha dos aplicativos frustra o usuário

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

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

  • exigindo mais espaço.
  • colocando-os em risco devido a um desenvolvedor descuidado que não reconstrói 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, poucas pessoas se preocupam), eu 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 do software não precisa se preocupar em fazer com que os usuários instalem as dependências corretas.
muru
fonte
3
Sim, acho que o inferno da dependência descreve muito bem.
Volker Siegel
Deixe-me criar a voz oposta :), Por que eles não usam apenas /opt?
user.dz
@Sneetsher pensa da seguinte maneira: o que impede um aplicativo em / opt de escrever sobre outro aplicativo em / opt? Pior, como você evita que um aplicativo leia as chaves privadas de outro aplicativo?
Evan
@Evan, bem AppArmorjá saiu para cobrir isso. mas o caminho da proteção pode ser diferente. De qualquer forma, o tópico é abordar.
user.dz
Muru, obrigado por escrever tudo isso. Esta foi a primeira resposta no Google, a propósito, sobre o porquê. Eu sou curioso, no entanto. Vejo que meu sistema está usando snaps para, por exemplo, Chromium. E agora eu gostaria de instalar o Skype. Normalmente, eu gostaria, sudo apt-get install skypemas depois vejo que está disponível como um piscar de olhos. Porém, quando instalei o Chromium, não fiz nada de especial para fazê-lo usar o snap. Ainda assim. Então agora eu entendo POR QUE os snaps existem, e estou feliz que eles existem. Agora estou curioso para me preocupar sudo snap install skype?
SDSolar 25/04
3

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

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

Os outros pontos fortes de venda são isolamento, imutabilidade e sandboxing, que são controlados por um contexto de 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 onde 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 de snap

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

pacotes snap do ubuntu selecionam o canal

Agora, imagine que você precisa executar uma dúzia de aplicativos, cada um com sua própria versão de determinadas bibliotecas, sua própria versão do tempo de execução Python / Ruby / NodeJS e não deseja correr para o inferno das dependências e estragar ou poluir as bibliotecas do sistema, seu sistema Python / Node / Perl / Ruby, etc.

ccpizza
fonte