Perché esistono i pacchetti di snap - c'è davvero bisogno?


11

ipotesi

Onestamente, non so molto sui pacchetti di snap - ma questo è irrilevante per questa domanda - vedi sotto. Presumo che il sistema sia significativamente diverso da quello esistente.

Il cambiamento ha senso?

C'è un bisogno reale, abbastanza forte? Cioè - esiste un nuovo caso d'uso, abbastanza importante per sviluppare un nuovo formato - e l'infrastruttura associata?

Non è stato possibile cambiare il metodo attuale per coprire anche i nuovi casi d'uso?

O mi manca il punto?

È possibile che ciò che vedo sia principalmente marketing: nuovi nomi e presentazioni per un minimo cambiamento tecnico, per avere la possibilità che qualsiasi organismo lo consideri "nuovo e migliore" e possa essere effettivamente utilizzato. Inoltre, è possibile che i nuovi pacchetti siano così strettamente basati sul formato esistente che si tratta principalmente di un cambiamento nella presentazione per l'utente. Potrebbe essere una buona soluzione, ovviamente. In questo caso, questa domanda non avrebbe molta rilevanza.

Quindi, spero che sia ancora abbastanza utile per rispondere agli aspetti collaterali. Fammi sapere se la domanda non è utile o confusa per i nuovi utenti, sono felice di eliminarla.

Quindi, perché esistono?


sfondo

La mia prima reazione è stata "Non ha senso!"

Questo è simile a una situazione in cui, sul sito della fisica, qualcuno ha chiesto, infelice, perché nessuno discute delle sue brillanti nuove idee nelle risposte. Sembrava fortemente idee da crackpot; Così lontano dall'effettiva conoscenza fisica che era difficile trovare un punto per iniziare. Ho scritto una risposta che non ha toccato le sue idee con una sola parola, ma ha spiegato il motivo per cui non si dovrebbe discutere di ipotizzare idee da crackpot - non il primo caso. La risposta in realtà stava colpendo il punto, penso.

Se i miei presupposti fossero giusti, questo caso è simile.

Ma poi, forse no - vediamo.


C'è un voto stretto che dice "principalmente basato sull'opinione" - significa che le risposte dovrebbero essere basate sull'opinione? Ciò costituirebbe sostanzialmente una risposta in sé, poiché significa che non esiste un consenso stabilito sul fatto che il cambiamento sia necessario. Quindi ci sarebbero argomenti pro e contro; Ciò significherebbe che la mia domanda è in realtà molto al punto e più utile di quanto mi aspettassi!
Volker Siegel,

2
Ho votato per riaprire questa domanda. Si sta davvero chiedendo perché sono stati introdotti gli snap, quando già esistevano i gestori di pacchetti e Ubuntu (e altri sistemi operativi) li avevano già. Quindi hai ragione: se questa fosse in realtà una domanda principalmente basata sull'opinione, ciò significherebbe che nessuna risposta potrebbe essere data principalmente sulla base di fatti ed esperienze. Tuttavia, come hai visto dall'ottima risposta di Muru , non è così. Quando (o anche se) gli snap dovrebbero essere usati è ancora qualcosa su cui le persone possono avere discussioni principalmente basate sull'opinione, ma non è quello che era.
Eliah Kagan,

Risposte:


17

Sì, c'è un reale bisogno.

C'è stato un reale bisogno di qualcosa del genere sin dalla prima volta che un software dipendeva da un altro.

Rendiamolo chiaro:

Gestire le dipendenze è difficile .

C'è un motivo per cui si chiama inferno delle dipendenze . I sistemi di packaging come RPM e Debian sono stati creati con l'intento di evitare l'inferno della dipendenza. Tuttavia, qualcuno deve pagare il costo:

  1. Su Windows, dove i programmi raggruppano le loro dipendenze, l'utente deve occuparsi degli aggiornamenti (e di eventuali problemi di sicurezza dovuti alla loro mancanza). Se lo sviluppatore desidera la versione X di qualcosa per la mia app, semplice: la fornisco con la mia app. Ora come gestisco gli aggiornamenti?
  2. Sulla maggior parte delle distro Linux (a seguito di Debian o Red Hat), dove un programma può dipendere dal software dal repository, un programma dal repository deve dipendere dal software dal repository. Se voglio la versione X di qualcosa per la mia app e la distribuzione fornisce X, semplice: dipendo da essa. E se la distribuzione non lo fa? Poi: ???
    • L'aggiunta di più versioni alla distribuzione aumenta il carico sul manutentore
    • Perdere la capacità di utilizzare la versione della scelta delle dipendenze aumenta il carico sullo sviluppatore
    • Perdere la capacità di utilizzare la versione della scelta delle applicazioni frustrare l'utente

Vi è una notevole perdita di libertà in entrambi i metodi.

Ed è qui che arrivano gli snap: lasciano allo sviluppatore la versione X e permettono al sistema di packaging di gestire gli aggiornamenti. Chi paga il costo? L'utente:

  • richiedendo più spazio.
  • mettendoli a rischio a causa di uno sviluppatore disinteressato che non ricostruisce i loro scatti quando una dipendenza viene patchata.

Quali vantaggi ottengo, in cambio?

  • A parte la sicurezza tramite gli aggiornamenti (che, francamente, non ci sono abbastanza persone), l'utente non deve preoccuparsi delle dipendenze con gli snap. La parola per lo più perde significato.
  • A parte gli aggiornamenti di sicurezza, lo sviluppatore del software non deve preoccuparsi di far installare le dipendenze corrette agli utenti.

3
Sì, penso che l' inferno delle dipendenze lo descriva abbastanza bene.
Volker Siegel,

Fammi creare la voce opposta :), Perché non usano solo /opt?
user.dz,

@Sneetsher la pensa in questo modo: cosa impedisce a un'app in / opt di scrivere su un'altra app in / opt? Peggio ancora, come si impedisce a un'app di leggere le chiavi private di un'altra app?
Evan,

@Evan, AppArmorè già uscito per coprirlo. ma il modo di protezione può essere diverso. Comunque l'argomento è di salire a bordo.
user.dz,

Muru, grazie per aver scritto tutto questo. Questa è stata la prima risposta su Google, tra l'altro, sul perché. Sono curioso, però. Vedo che il mio sistema utilizza gli snap per, diciamo, Chromium. E ora vorrei installare Skype. Di solito lo farei sudo apt-get install skypema poi vedo che è disponibile in un attimo. Ma quando ho installato Chromium non ho fatto nulla di speciale per farlo usare snap. Eppure lo fa. Quindi ora capisco PERCHÉ esistono gli snap e sono contento che lo facciano. Ora sono curioso di sapere se devo preoccuparmi sudo snap install skype?
SDsolar,

3

Una caratteristica particolare degli snap che potrebbe essere utile è la possibilità di scegliere un canale per gli sviluppatori che forniscono più di un canale, come release , candidato , master , ecc.

Ad esempio, facendo clic sul pulsante Canale per nextcloudverrà visualizzata la finestra di dialogo nello screenshot seguente.

Gli altri punti di forza sono l'isolamento, l'immutabilità e il sandbox che sono controllati da un contesto di criteri di sicurezza , che consente di definire autorizzazioni per app, chiamate anche "plug" per es:

  • posizioni di lettura / scrittura
  • accesso alla memoria rimovibile
  • Paesi in cui lo snap è inserito nella whitelist / nella blacklist
  • accesso alla rete
  • fotocamera, stampante, joystick, posizione GPS
  • Impostazioni di sistema
  • ... elenco completo di interfacce snap

L'approccio imita in una certa misura i bundle dell'app MacOS e il sandboxing delle app Android con autorizzazioni e provider / ricevitori di contenuti.

i pacchetti snap ubuntu selezionano il canale

Ora, immagina di dover eseguire una dozzina di app ognuna con la sua versione di determinate librerie, la sua versione del runtime di Python / Ruby / NodeJS e non vuoi correre nell'inferno delle dipendenze e rovinare o inquinare le tue librerie di sistema, i moduli Python / Node / Perl / Ruby del tuo sistema, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.