zoukankan      html  css  js  c++  java
  • 关于DEB打包的一些失败记录,想让deb安装完成之后显示一些信息

    关于DEB打包的一些失败记录,想让deb安装完成之后显示一些信息 - yanjieee - 博客园

    关于DEB打包的一些失败记录,想让deb安装完成之后显示一些信息

    今天搞了一下QT的应用程序在ubuntu下的安装程序,也就是用DEB打包工具打包以下。

    客户要求要在安装完成之后,显示一个提示信息,让用户看到。

    我首先想到的方法就是DEBIAN/control文件中有没有什么字段是用来在deb package installer安装完成之后显示信息的。

    可是查了一下官方文档,很失望,没有这个字段。

    后来只好从DEBIAN/postint这个脚本入手,这个脚本是在installer完成安装之后执行的脚本。

    所以,我一开始的想法,是用QT做一个简单的弹框程序,然后用脚本去调用它,谁知道简单的一个对话框程序,编完发现居然达到了8M之大。

    由于对QT的研究不是很深入,不敢贸然去删除一些静态库。所以pass了该方案。

    接下去我就想到,使用脚本去执行shell命令,估计有哪一条命令是可以弹框的,果不其然,一查之下,还真有,那就是——zenity。

    我使用zenity --info --text="hello world"就可以弹出一个简单的对话框,这下可把我高兴的。

    直接开始打包,过程很顺利,结果也不错。

    可是!!!拿到11.04下面一测就悲剧了。直接报错说connot open display神马的。

    查了一下,网上的说法是当有不同的用户要执行图形界面的时候,本用户就会报错。解决方法是先运行命令"xhost +"来开启多用户共享的图形界面。

    于是我在zenity之前调用了"xhost +",在11.04下面一跑,得了,这次不报zenity的错,而是报xhost的错误了,提示也是一些cannot display之类的,记得不是很清楚了。

    网上提到该解决办法比较繁琐,要去更改系统配置之类的。所以,该方案pass too。

    仔细回想一下,以我的理解,应该是当前用户运行deb之后,会提示输入超级用户的密码,这个时候,应该就是转到超级用户的身份来执行installer了,所以导致了zenity的多用户出错。后面的话,按理说超级用户跑xhost应该有足够的权限,怎么就失败了?具体我也没深究了。 反正是放弃了。

    后来想想,即使用了8M的那个弹框估计也会出现和zenity类似的问题。真是纠结啊。 

    最后实在没辙了,只好在 DEBIAN/control 的Description字段里面写一些提示信息了,反正这些字从开始安装到结束都会显示着,^_^。

    记得第二行开头要空格,不然打包的时候就出错咯。

  • 相关阅读:
    3d smoke(CPU版)
    Rendering of Translucent Object With PRT(原创)
    Loren Carpenter与分形山脉
    WWW.GAMEDEV.NET的每日一图
    3d fire(CPU版)
    CentOs安装Docker
    关于Reporting Service的一些零碎整理
    .NET高级调试策略
    基于云的商务智能应该注意的事项
    outlook联系人操作手册
  • 原文地址:https://www.cnblogs.com/lexus/p/2464631.html
Copyright © 2011-2022 走看看