Non c'è davvero nulla di standard nel mondo *nix. Dovrai sempre supportare distribuzioni specifiche e ciascuna di queste distribuzioni può a sua volta avere diversi modi possibili per creare un aggiornamento automatico.
Alle tue domande:
-
Non esiste un modo standard.
-
Dipende dal tuo modo di distribuire effettivamente il pacchetto. Se prevedi di utilizzare gestori di pacchetti come rpm/apt-get/apt install, ognuno di questi gestori ha un modo specifico di configurare la tua applicazione in modo che sia tra quei pacchetti che vengono controllati per gli aggiornamenti automatici.
-
Differenza tra .rpm / .deb:
La differenza principale per un manutentore di pacchetti (penso che sarebbe "sviluppatore" nel gergo Debian) è il modo in cui i metadati del pacchetto e gli script di accompagnamento si uniscono. Collegamento
Differenza tra Ubuntu e Fedora:poiché creare una risposta dettagliata a queste domande sarebbe troppo lungo e troppo impegnativo da mantenere, dai un'occhiata a questo post sul blog che descrive in dettaglio le differenze tra queste due distribuzioni.
Puoi provare electron-simple-updater se il formato AppImage va bene per il tuo progetto.
Immagini app
Puoi usare electron-builder
per creare Appimages per installare o aggiornare automaticamente la tua applicazione in quasi tutte le distribuzioni Linux
AppImage è un formato di pacchetto software universale. Impacchettando il software in AppImage, lo sviluppatore fornisce un solo file "per domarli tutti". L'utente finale, cioè tu, può usarlo nella maggior parte (se non in tutte) le moderne distribuzioni Linux
Se vuoi aggiornare automaticamente la tua app avrai bisogno anche di electron-autoupdater
. Obiettivi:
- MacOS:DMG.
- Linux:AppImage
- Windows:NSIS
Puoi trovare un esempio di un progetto che lo utilizza qui. I file importanti:package.json
, updater.js
, updater_renderer.js
Con alcune di queste istruzioni puoi creare gli installer:
yarn electron-builder --linux --x64
yarn dist_linux # shortcut in package.json
deb, rpm
Puoi creare pacchetti come deb o rpm con electron-builder
, ma per aggiornarli automaticamente dipende da come li distribuisci come dice Jens nella sua risposta. L'utente finale potrebbe aver bisogno di aggiungere un repository apt per tenersi aggiornato
La risposta di Jens è davvero la migliore.
Ma se non vuoi dedicare il tuo tempo all'apprendimento di RPM e DEB e alla creazione di pacchetti per tutte le distribuzioni, puoi prendere in considerazione l'idea di impacchettare la tua applicazione utilizzando Flatpak. http://flatpak.org/#about
Crea un grande archivio che può essere eseguito su Ubuntu, RHEL.... Ovunque.