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 <qingtang166@qq.com>
Architecture: i386
Description: The software is a opensource package
from cqy qingtang166@qq.com
**********************************************
★★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/aaa20090987/article/details/6967654
分享到:
相关推荐
QT程序打包成DEB文件是将Qt应用程序转化为适用于Debian系Linux系统(如Ubuntu、Debian等)安装包的过程。DEB是Debian软件包格式,它包含程序的执行文件、依赖关系、元数据等。以下是对这个过程的详细解释: 1. **...
在Linux环境下,开发基于Qt框架的应用程序是常见的做法,因为它提供了丰富的GUI库和跨平台兼容性。本案例将探讨如何在Linux系统下为Qt程序创建...用户只需双击安装包,即可轻松在他们的系统上安装并运行你的应用程序。
在Linux世界中,DEB包是Debian及其衍生系统(如Ubuntu)中广泛使用的软件打包格式,用于分发和安装应用程序。本实例将带你深入了解如何制作DEB包、添加软件图标以及将其集成到系统菜单中。我们将涉及以下几个关键...
5. **打包和部署**:将静态编译的Qt应用程序、所有依赖的库文件和启动脚本打包成一个压缩文件,如`.tar.gz`或`.deb`包。确保在目标系统上解压后,能够直接运行启动脚本来启动应用程序。如果目标系统是Debian或Ubuntu...
`linuxdeployqt`的工作原理是扫描给定的Qt应用程序,找出所有必要的动态库和资源文件,并将它们复制到一个目标目录,创建一个自包含的部署包。这极大地简化了应用的分发和安装过程,确保用户在飞腾架构系统上能够...
制作deb包的三种方法_Ralph的空间制作deb包的三种方法_Ralph的空间制作deb包的三种方法_Ralph的空间
本文将详细介绍如何使用 QT 程序制作 deb 包,并安装到应用程序菜单中。 deb 包的制作主要可以分为三个步骤:打包、安装和卸载。在制作 deb 包时,首先需要将 QT 程序制作的源程序打包,然后使用 debian 压缩工具对...
"用dpkg命令制作deb包1" Deb包简介: Deb包是Debian Linux发行版中使用的一种软件包格式, Deb包由两部分组成:数据archives和控制信息archives。数据archives存储了软件的实际文件,而控制信息archives则存储了...
### deb包制作与安装知识点详解 #### 一、deb包制作流程 ##### 1. deb包命名规则 - **格式**: `包名_版本号-修订号_支持平台.deb` - 示例: `wt-ezsdk-dm8168_5.02.01.59-1_i386.deb` - `wt-ezsdk-dm8168`: 包名 ...
- 如果项目包含配置文件,应将它们组织到源代码目录中,并在后续的install脚本中指定安装位置。 - 清理目录,删除所有编译中间文件、隐藏文件、工程文件和源码控制文件,仅保留源代码、Makefile以及必要的配置文件...
在Linux系统中,deb包是一种非常常见的软件包格式,它由Canonical开发并广泛应用于Debian及其衍生系统(如Ubuntu、Linux Mint等)。deb包不仅包含了程序本身,还包含了依赖库文件及元数据,使得安装过程更加方便快捷...
在嵌入式设备开发中,Qt是一个非常流行的图形用户界面框架,它允许开发者创建美观、功能丰富的应用程序。本文将深入探讨如何在ARM Linux平台上对基于Qt的程序进行升级,这通常涉及到软件版本管理、更新机制设计以及...
在IT行业中,Qt是一个广泛应用的跨平台开发框架,主要用于创建桌面、移动以及嵌入式应用程序。C++与Qt的结合,使得开发者可以利用强大的C++语言特性,同时享受到Qt提供的丰富的图形用户界面(GUI)组件和系统接口。...
Qt 是一个跨平台的应用程序开发框架,由 Nokia 公司开发,广泛应用于桌面应用程序、移动应用程序和嵌入式系统。Qt5.2.1 是 Qt 的一个版本,在 Linux 平台上安装 Qt5.2.1 需要遵循特定的步骤。 获得源代码 Qt 的源...
9. 在安装DEB包驱动之前,确保清除旧的编译安装。通过运行`make uninstall`命令,可以卸载由`checkinstall`之前编译的驱动。 10. 确认驱动模块版本,可以使用`rmmod i40e && modprobe i40e`命令,这会移除并重新...
1.2 安装QT:在Linux系统中,可以通过包管理器(如apt、yum)安装QT开发工具,也可以从官方网站下载源码编译安装。确保安装了QT Creator,这是一个集成开发环境,包含了代码编辑、构建、调试等工具。 1.3 QT ...
这样做的目的是为了让Deb包在安装时能够正确地放置每个文件。 ##### 3. 创建DEBIAN子目录 在`package`目录中创建一个名为`DEBIAN`的子目录,这个子目录用于存放Deb包的关键元数据,包括控制文件(control)等。 ``` ...
在本篇文章中,作者详细介绍了如何在Windows XP操作系统环境下为Qt应用程序制作Maemo安装包的过程。Maemo是一个基于Linux的操作系统,主要应用于诺基亚的互联网平板设备,如N900等。由于开发环境与目标平台之间的...
Ubuntu 软件安装与程序添加程序菜单和桌面 在 Ubuntu 系统中,软件安装有多种方式,包括 deb 包安装、源代码编译安装和 apt-get 安装方法。deb 包安装是 Ubuntu 软件安装的默认方式,用户可以直接下载 deb 格式的...
如果在安装过程中遇到依赖问题,可以尝试使用`apt-get install -f`修复依赖关系,或者手动下载并安装缺失的依赖包。 总结来说,GCC和build-essential是Ubuntu开发环境中的基本组件。离线安装这两个包时,需要下载...