Realmente no hay nada estándar en el mundo *nix. Siempre tendrá que admitir distribuciones específicas, y cada una de estas distribuciones puede, a su vez, tener múltiples formas posibles de crear un actualizador automático.
A sus preguntas:
-
No hay una forma estándar.
-
Eso depende de su forma de distribuir realmente el paquete. Si planea usar administradores de paquetes como rpm/apt-get/apt install, entonces cada uno de estos administradores tiene una forma específica de configurar su aplicación para estar entre esos paquetes que se verifican para actualizaciones automáticas.
-
Diferencia entre .rpm / .deb:
La principal diferencia para un mantenedor de paquetes (creo que sería 'desarrollador' en la jerga de Debian) es la forma en que se unen los metadatos del paquete y los scripts que lo acompañan. Enlace
Diferencia entre Ubuntu y Fedora:Dado que crear una respuesta detallada a estas preguntas sería demasiado largo y difícil de mantener, consulte esta publicación de blog que detalla las diferencias entre estas dos distribuciones.
Puede probar electron-simple-updater si el formato AppImage está bien para su proyecto.
Imágenes de aplicaciones
Puedes usar electron-builder
para crear Appimages para instalar o actualizar automáticamente su aplicación casi en cualquier distribución de Linux
AppImage es un formato de paquete de software universal. Al empaquetar el software en AppImage, el desarrollador proporciona solo un archivo "para gobernarlos a todos". El usuario final, es decir, usted, puede usarlo en la mayoría (si no en todas) las distribuciones modernas de Linux
Si desea actualizar automáticamente su aplicación, también necesitará electron-autoupdater
. Objetivos:
- Mac OS:DMG.
- Linux:Imagen de aplicación
- Windows:NSIS
Puede encontrar un ejemplo de un proyecto que usa esto aquí. Los archivos importantes:package.json
, updater.js
, updater_renderer.js
Con algunas de estas instrucciones puede crear los instaladores:
yarn electron-builder --linux --x64
yarn dist_linux # shortcut in package.json
deb, rpm
Puede crear paquetes como deb o rpm con electron-builder
, pero actualizarlos automáticamente depende de cómo los distribuya, como dice Jens en su respuesta. Es posible que el usuario final deba agregar un repositorio apt para mantenerse actualizado
La respuesta de Jens es realmente la mejor.
Pero si no quiere perder su tiempo aprendiendo RPM y DEB y creando paquetes para todas las distribuciones, entonces puede considerar empaquetar su aplicación usando Flatpak. http://flatpak.org/#acerca
Crea un gran archivo que se puede ejecutar en Ubuntu, RHEL.... En todas partes.