QT程序制作deb包并安装在应用程序菜单

制作原理:
打包:将QT制作的源程序(没有编译的)用debian压缩打包(这里是用脚本对源程序再
编译)
安装:将deb包中的源程序解压(默认解压到根目录)到规定系统文件中并编译(postinst
脚本)
卸载:将解压的所有文件删除(postrm脚本)
例子:
1.新建deb包文件myded
|——mydeb
     |————application
           |——addressbook(此目录存放QT的源程序和configure脚本)
           |————lib
                 |——addressbook.desktop(桌面文件为了cp
到/usr/share/applications/)
                 |——addressbook.png(图标文件为了cp到/usr/share/pixmaps/)
     |————DEBIAN(大写、用来制作打包文件)
            |————control(描述deb包的信息必须的文件)
            |————postinst(软件安装后执行的脚本、chomod 755 postinst加可执
行权限)
            |————postrm(软件卸载后执行的脚本、chomod 755 postrm加可执行
权限)

2.各个文件的具体制作
**********************************
addressbook目录:
**********************************
addressbook中存放编写的源程序(QT4编写的),为了可在不同的环境可安装对源程序
不进行编译,写一个configure脚本在安装后编译
configure脚本内容(chomod 755 configure)
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
qmake -project #编译生成.pro项目文件
qmake          #编译生成Makefile文件
echo -e "run configure Ok!"
(这里生成的Makefie文件不make是为了可以解压再使用)

***********************************
lib目录:
***********************************
addressbook.desktop文件内容
[Desktop Entry] #必写
Encoding=UTF-8  #编码
Exec=addressbook  #可执行程序名称 在/usr/bin/中
Name=addressbook  #程序名
Name[zh_CN]=地址簿 #程序中文名
X-KDE-StartupNotify=true #是否启动通知
Comment=addressbook  #注释
Icon=/usr/share/pixmaps/addressbook.png #图标位置
Terminal=false #是否使用终端
Type=Application  #类型
Categories=Application;Utility; #放在附件菜单项中,也可以放在其他菜单项中
Categories第一个一般为Application
第二个一般为
互联网(Internet)Network
办公 Office
图形 Graphics
声音和视频 AudioVideo
系统工具 System
编程 Development
附件 Utility
影音 AudioVideo
游戏 Game
首选项 Settings(GNOME;GTK;Settings;HardwareSettings;)
系统管理 System;Settings;

addressbook.png下载
http://www.iconpng.com/

****************************************************************** 
DEBIAN内容

*******************************************************************
DEBIAN目录中起码具有control文件,其次还可能具有 postinst(postinstallation)、 
postrm(postremove)、preinst(preinstallation)、prerm(preremove)、copyright (版
权)、changlog (修订记录)和conffiles等。
control: 这个文件主要描述软件包的名称(Package),版本(Version)以及描述
(Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。
同时为了能将软件包进行充分的管理,可能还具有以下字段:
Section: 这个字段申明软件的类别,常见的有`utils’, `net’, `mail’, `text’, 
`x11′ 等;
Priority: 这个字段申明软件对于系统的重要程度,如`required’, `standard’, 
`optional’, `extra’ 等;
Essential: 这个字段申明是否是系统最基本的软件包(选项为yes/no),如果是的话,
这就表明该软件是维持系统稳定和正常运行的软件包,不允许任何形式的卸载(除非进
行强制性的卸载)
Architecture:申明软件包结构,如基于`i386′, ‘amd64’,`m68k’, `sparc’, 
`alpha’, `powerpc’ 等;
Source: 软件包的源代码名称;
Depends: 软件所依赖的其他软件包和库文件。如果是依赖多个软件包和库文件,彼此之
间采用逗号隔开;
Pre-Depends: 软件安装前必须安装、配置依赖性的软件包和库文件,它常常用于必须的
预运行脚本需求;
Recommends: 这个字段表明推荐的安装的其他软件包和库文件;
Suggests: 建议安装的其他软件包和库文件。
*************************************
★★control文件内容
Package: addressbook
Version:0.1
Section: utils   #类别
Priority: extra  #重要程度:额外的
Maintainer: cqy <[email protected]>
Architecture: i386
Description: The software is a opensource package
from cqy [email protected]

**********************************************
★★postinst(软件安装后执行的脚本、执行chomod 755 postinst加可执行权限)内容
#!/bin/sh
dire="/usr/share/addressbook"
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
mkdir -p $dire #在/usr/share/中新建目录存放程序
mv -f /application $dire/ #将解压到根目录的程序移动到新建好的目录中
cd $dire/application/addressbook/  #进入程序目录
./configure #执行脚本生成Makefile
make #编译
echo "install Ok!"  #安装完成
ln -s $dire/application/addressbook/addressbook /usr/bin/addressbook  #为应
用程序建立链接,链接到/usr/bin/addressbook上(可任意调用addressbook程序)
cp -rf $dire/application/lib/addressbook.png /usr/share/pixmaps/      #把图
标文件addressbook.png放在/usr/share/pixmaps/中
cp -rf $dire/application/lib/addressbook.desktop /usr/share/applications/ #
把桌面文件addressbook.desktop放在/usr/share/applications/中
echo "Ok!"

****************************************************************************
★★postrm(软件卸载后执行的脚本、执行chomod 755 postrm加可执行权限)
#!/bin/sh
dire="/usr/share"
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
rm -rf $dire/addressbook  #删除产生的文件
rm -rf /usr/bin/addressbook
rm -rf $dire/pixmaps/addressbook.png
rm -rf $dire/applications/addressbook.desktop
echo "delete this software is Ok!"

***********************************************************************
回到mydeb所在目录执行
sudo dpkg -b mydeb addressbook_0.1_i386.deb 打包(deb包正确的命名规则program-
name_version_architeture.deb。所有的值应该与它们在control文件里对应的语句相
同)
得到addressbook_0.1_i386.deb包

sudo dpkg -i addressbook_0.1_i386.deb 安装(在应用程序开始菜单的附件下)
sudo dpkg -P addressbook 卸载

***********************************************************************

参考:http://blog.csdn.net/small_qch/article/details/6967654

时间: 2024-10-12 17:32:58

QT程序制作deb包并安装在应用程序菜单的相关文章

用dpkg命令制作deb包方法总结

用dpkg命令制作deb包方法总结 如何制作Deb包和相应的软件仓库,其实这个很简单.这里推荐使用dpkg来进行deb包的创建.编辑和制作. 首先了解一下deb包的文件结构: deb 软件包里面的结构:它具有DEBIAN和软件具体安装目录(如etc, usr, opt, tmp等).在DEBIAN目录中起码具有control文件,其次还可能具有postinst(postinstallation).postrm(postremove).preinst(preinstallation).prerm(

deb包+软件图标+添加到系统菜单+举例安装卸载

本文介绍的内容和实验一下: 1. 制造deb包.2. 为了使软件图标.3. 开始菜单中添加到系统中的软件:4. 安装和卸载制作的deb包. 1. 制作deb包 制作deb包的方法可能有多种,本文使用的是dh_make工具. 能够參考文章:http://www.linuxidc.com/Linux/2011-02/32714.htm . 文章给出了制作的过程,可是没有详细的细节. 本文制作了一个deb规范的源代码包,这里不再赘述制作过程,能够下载该源代码包查看(http://download.cs

Ubuntu下deb包的安装方法 (zz)

Ubuntu下deb包的安装方法 分类: Ubuntu10使用技巧 2010-10-11 23:49 42969人阅读 评论(3) 收藏 举报 ubuntudebdebianlinux deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubu

【转】Ubuntu下deb包的安装方法

[转]Ubuntu下deb包的安装方法 deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu.Knoppix 等.以下是一些 Dpkg 的普通用法: 1.dpkg -i <package.deb>安装一个 Debian 软件包,如

转载:Ubuntu下deb包的安装方法

转载:Ubuntu下deb包的安装方法,http://blog.csdn.net/kevinhg/article/details/5934462 deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu.Knoppix 等.以下是一些

使用RPM包工具和源码包编译安装Linux应用程序

系统命令:一般在/bin和/sbin目录中,或为Shell内部指令,完成对系统的基本管理工作,例如IP配置工具 应用程序:通常在/usr/bin和/usr/sbin目录中,完成相对独立的其他辅助任务,例如网页浏览器 Linux应用程序的组成 /usr/bin     普通可执行程序文件,普通用户即可执行 /usr/sbin    服务器程序.管理程序文件,只有管理员能执行 /etc         配置文件,文件较多时会创建子目录 /var/log     日志文件 /usr/share/doc

Ubuntu下deb包的安装方法

deb是debian linus的安装格式,跟red hat的rpm非常相似,最基本的安装命令是:dpkg -i file.deb dpkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu.Knoppix 等.以下是一些 Dpkg 的普通用法: 1.dpkg -i <package.deb>安装一个 Debian 软件包,如你手动下载的文件. 2.dpkg -c

ubuntu 制作deb 包

单个执行文件怎么打包成deb?[已解决]7楼careone正解! 2013-11-16 13:30韶华倾负lcyxv | 分类:操作系统/系统故障 | 浏览338次 分享到: 2013-11-16 21:38 提问者采纳 1 下载一个其他的 deb 软件包,解压缩后得到2个压缩包: data.tar.gz , control.tar.gz:2 解压 control.tar.gz ,得到 control 文件(在这个文件中修改软件包依赖关系),删除另外的 md5sums 文件:3 把自已的文件放在

基于EasyNVR摄像机无插件直播流媒体服务器之linux系统如何打包EasyNVR为deb包?

背景分析 从视频智能化相关技术研发开始计算,智能化在视频行业内已经发展了十余年,但是视频行业的智能化应用一直没有达到预期.目前视频智能化主要的表现还是集中在前端设备摄像机产品的某些智能功能,以及一些配备智能分析的NVR/DVR和后端的智能分析平台系统.智能化水平还处在初级阶段,周边的硬件及软件设备还未完善,还有很多环境和应用限制条件. linux下打包EasyNVR为deb包 问题描述 在实际项目中,有的用户需要提供的EasyNVR以及EasyNTC为deb包格式,那么我们就来看一下如何制作de