Ubuntu下的deb包制作详解

来源:本站
导读:目前正在解读《Ubuntu下的deb包制作详解》的相关信息,《Ubuntu下的deb包制作详解》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《Ubuntu下的deb包制作详解》的详细说明。
简介:本文详细介绍了用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;

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

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 卸载。

提醒:《Ubuntu下的deb包制作详解》最后刷新时间 2024-03-14 01:03:11,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《Ubuntu下的deb包制作详解》该内容的真实性请自行鉴别。