安装deb包提示包损坏,打包deb文件
关于deb打包的一些失败记录,我想在DEB安装完成后显示一些信息-yanjiee-博客花园。
关于deb打包的一些失败记录,我想在DEB安装完成后显示一些信息。今天我做了一个在ubuntu下安装QT应用的尝试,就是用DEB打包工具把下面的打包。
客户要求在安装完成后,向用户显示一条提示消息。
我首先想到的是DEBIAN/control文件中是否有字段是用来显示deb包安装程序安装后的信息的。
但是查了一下官方文件,很失望没有这个字段。
后来,我们不得不从脚本DEBIAN/postint开始,它在安装程序完成安装后执行。
所以,我最初的想法是用QT做一个简单的弹出程序,然后用脚本调用。谁知道一个简单的对话程序,编译后居然达到了8M。
因为对QT的研究不是很深,所以不敢贸然删除一些静态库。于是方案通过了。
接下来我知道的,用脚本执行shell命令,估计有一个命令可以被弹回。果然,查了一下,有一个,就是——zenity。
我可以用zenity-info-text= hello world 弹出一个简单的对话框,这让我很开心。
直接开始打包,过程顺利,效果不错。
但是!得到下面11.04的测试真是悲剧。就报错说打不开显示器什么的。
是的,网上说当不同的用户要执行图形界面时,这个用户会报错。解决方案是首先运行命令‘xhost’来打开多个用户共享的图形界面。
所以我在zenity之前调用了‘xhost’,在11.04下运行。拜托,我这次不是举报zenity的错,是举报xhost的错。提示也是有的不能显示等。我记不太清楚了。
网上提到这个方案比较复杂,需要改变系统配置等等。因此,这个方案也通过了。
仔细回想一下,以我的理解,应该是当前用户运行deb后,会提示输入超级用户的密码。这个时候应该是去超级用户的身份执行安装程序,导致zenity的多用户错误。在后一种情况下,显然超级用户应该有足够的权限来运行xhost。他们为什么失败了?我就不细说了。反正我放弃了。
想了想,估计就算用8米弹箱,zenity也会有类似的问题。真的很纠结。
最后没办法,只好在DEBIAN/control的描述字段写了一些提示信息。反正这些字从安装开始到结束都会显示。
记得第二行开头要有空格,不然打包的时候会出错。