在给deb打包时,要创建DEBIAN文件夹,在此目录中有一个control的文件。
control文件中有一个Package项,该项最好用全小写字母,而不是大小写混写。
如果大小写混写,在安装时,相同的包覆盖安装,不会提示“已安装相同版本”。
这是因为安装器(deepin-deb-installer)在安装前会判断软件是否已经安装,其判断标准是,该包名是否存在于系统中。
然而系统中存着的包名是全小写的。而安装器获取到的包名是从control中获得的,如果是大小写混写,则安装器会认为该安装包未安装。所以此时不会显示“已安装相同版本”。如果control的包名是全小写的,则判断就会正常。
严格来讲,这也是deb-installer的一个bug,在判断软件包是已安装时,应该忽略大小写。
如图:
为了解决 这个问题,我还不得不在UOS下编译了deepin-deb-installer.
编译过程可以看 deepin-deb-installer在UOS上的编译