制作deb包
- 准备要打包的文件,存放目录如下
|——MyDeb-deb
|————usr
|————local
|——.sslvpn
|——应用具体文件(包括bin,lib,启动脚本等.安装后应用就在/usr/local/.sslvpn)
|————share
|————icons
|——deb.png(图标文件生成到/usr/share/icons/)
|————applications
|——deb.desktop(桌面文件生成到/usr/share/applications/)
|————DEBIAN(必须大写、用来制作打包文件)
|————control(描述deb包的信息必须的文件)
- 编辑control文件
格式如下即可
Package: sslvpn
Version: 1.0.2
Section: free
Prioritt: optional
Architecture: amd64
Maintainer: Dptech
Description: sslvpn1.0.2
- 编辑其他文件(可选)
例如安装后要做的操作,可以写在postinst脚本,卸载后要做的工作写在postrm脚本,以postrm为例(做一些清理工作)
# !/bin/sh
# clean .sslvpn and destkop file and log if exists
for I in /home/*; do
THISUSER=`echo $I | cut -d "/" -f 3 -`
USERID=`id -u $THISUSER 2>/dev/null || echo "_FALSE_"`
if [ $USERID = '_FALSE_' ] ; then
continue
fi
DIST_DIR=$I/.sslvpn
AUTOSTART_DIR=$I/.config/autostart
AUTOSTART_NAME=sslvpn-client.desktop
LOG_FILE=/tmp/dpsslvpn.log
if [ -d $DIST_DIR ]; then
rm -rf $DIST_DIR
fi
if [ -f $AUTOSTART_DIR/$AUTOSTART_NAME ]; then
rm $AUTOSTART_DIR/$AUTOSTART_NAME
fi
if [ -f $LOG_FILE ]; then
rm $LOG_FILE
fi
done
exit 0
deb包操作命令
-
打包dpkg -b
dpkg -b pack_x86 mydeb-1.deb
第一个参数为将要打包的目录名,第二个参数为生成包的名称 -
安装(解包并配置)
dpkg -i mydeb-1.deb -
卸载删除包,但保留配置文件
dpkg -r my-deb -
查看deb包是否安装/deb包的信息
dpkg -s my-deb -
解压deb包中DEBIAN目录下的文件(至少包含control文件)
dpkg -e mydeb-1.deb mydeb-1/DEBIAN