我使用 dpkg 创建包并分发我的应用程序。请看一下我的“DEBIAN/control”文件的例子:
Package: myapp
Version: 1.0.1
Section: base
Priority: optional
Architecture: amd64
Depends: bash (>= 2.05a-11)
Maintainer: Home <[email protected]>
Description: My test app
上一个包的控制文件有一行不同:
Version: 1.0.0
在幕后它工作正常:package-1.0.0 文件被替换为新文件。但问题是用户没有收到任何消息,例如“版本 1.0.0 已安装”或“您真的想用新版本替换旧版本吗?”。安装新版本的应用程序时,我无法自定义“Ubuntu 软件”的行为。这是向用户显示的唯一窗口: Ubuntu Software screenshot
如何通知用户已经安装了以前版本的 myapp?
这就是linux的工作原理。如果你要求它做某事,它会毫不费力地做。例如,如果您使用终端复制文件,它会静默执行。如果你安装一个包,它会默默地做。只有当出现错误或警告时,您才会收到系统的回复。
安装应用程序的是管理员。Linux 认为管理员很聪明。管理员知道他将安装什么。他/她通常会知道该软件是否已经存在以及是什么版本。
事实上,这也是软件的设计方式。如果您要求它安装 a
.deb
,它会这样做。如果您想实现确认对话框,您需要提供自己的包管理器或补丁“软件”。