dpkg制作deb包

deb包的文件结构:

deb包里面的结构:DEBIAN目录 和 软件具体安装目录(模拟安装目录)(如etc, usr, opt, tmp等)。

在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: appdemo1
Version: 1.1.001
Architecture: armel
Section: utils
Maintainer: tp <tp@tp.com>
Installed-Size: 2000
Priority: optional
Description: this is app demo 1

postinst文件:包含了软件在进行正常目录文件拷贝到系统后,所需要执行的配置工作。

prerm文件:软件卸载前需要执行的脚本。

postrm文件:软件卸载后需要执行的脚本。

制作deb包的脚本

#!/bin/bash

rm -rf temp
mkdir -p temp
mkdir -p temp/DEBIAN
touch temp/DEBIAN/{control,postinst,postrm}
chmod -R 755 temp/DEBIAN/

echo "Package: appdemo1" > temp/DEBIAN/control
echo "Version: 1.1.001" >> temp/DEBIAN/control
echo "Architecture: armel" >> temp/DEBIAN/control
#echo "Architecture: amd64" >> temp/DEBIAN/control
echo "Section: utils" >> temp/DEBIAN/control
echo "Maintainer: huawei <huawei@huawei.com>" >> temp/DEBIAN/control
echo "Installed-Size: 2000" >> temp/DEBIAN/control
echo "Priority: optional" >> temp/DEBIAN/control
echo "Description: this is app demo 1" >> temp/DEBIAN/control

echo "#!/bin/bash" > temp/DEBIAN/postinst
echo "mkdir -p /app_demo_1" >> temp/DEBIAN/postinst

echo "#!/bin/bash" > temp/DEBIAN/postrm
echo "rm -rf /app_demo_1" >> temp/DEBIAN/postrm

mkdir -p temp/lib/systemd/system/
mkdir -p temp/usr/bin/
mkdir -p temp/lib/

cp database temp/usr/bin/app1srv1
cp database temp/usr/bin/app1srv2
cp libdatabase.so temp/lib/libdatabase1.so
cp app1srv1.service temp/lib/systemd/system/
cp app1srv2.service temp/lib/systemd/system/

chmod a+x temp/usr/bin/app1srv1
chmod a+x temp/usr/bin/app1srv2
chmod 0755 ./temp/lib -R
chmod -x ./temp/lib/libdatabase1.so
chmod 0755 ./temp/usr -R

dpkg -b temp/ appdemo1.deb
if [ $? = 0 ]; then
   echo "create deb file success!"
   exit 0
else
   echo "create deb file failed!"
   exit 0
fi

deb包的使用

1.安装deb包

 dpkg -i appdemo1.deb

2.卸载deb包

 dpkg -r appdemo1#名字为Package字段

3.查看deb包内容

dpkg   -c   appdemo1.deb

4.解压deb包中所要安装的文件

dpkg -X   appdemo1.deb    test # 第一个参数为所要解压的deb包,这里为 appdemo1.deb
                               # 第二个参数为将deb包解压到指定的目录,这里为 test
  1. 解压deb包中DEBIAN目录下的文件(至少包含control文件)
dpkg -e   appdemo1.deb   test/DEBIAN    # 第一个参数为所要解压的deb包,
                                        # 这里为 appdemo1.deb
                                        # 第二个参数为将deb包解压到指定的目录,
                                        # 这里为 test/DEBIAN
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值