我开发了一个java应用程序,它为许多平台打包(包括.deb / .rpm)。在我的应用程序中,有一个自动升级的功能。对于 Linux 平台,它可以检查是否存在新版本并下载新的 .deb/.rpm。现在我有2个选择:
- 弹出窗口要求用户关闭应用程序并自行安装 .deb/.rpm
- 启动一个脚本来关闭应用程序并安装 .deb / .rpm 本身(类似于 Windows 和 MacOS 下的操作)。
是否有可能为所有 debian/fedora 衍生品提供安全的方法 2?例如,对于 Debian 衍生品来说,以下脚本是个好主意吗?
sudo apt install gdebi -y
sudo gdbi [package path]
感谢您的帮助。
答案1
分发软件包时,建议的方法是在软件包存储库(您自己的存储库或各个社区存储库之一)中提供它们;这样,升级就可以与系统的其余升级一起处理。在当前的桌面环境中,当更新可用时,用户会收到通知,因此与应用程序中的特定检查相比,您不会增加太多延迟。
不过,您可以自行处理升级。根据如何您的应用程序已打包,甚至可能无需在升级之前关闭它 — Unix 风格的环境不会阻止您在可执行文件运行时对其进行更改。
至于 Debian 及其衍生产品的安装片段,我不会费心gdebi
;apt
可以自行安装本地包。下载包,然后在同一目录下运行
sudo apt install ./package.deb
只要您以 开头的路径./
,apt
就会使用下载的包(并解决依赖关系等)。
yum
您可以使用或对基于 Fedora 或 RHEL 的 RPM 系统执行相同的操作dnf
。