Linux下打包deb
deb安装包结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cP7QgwCs-1680850276680)(vx_images/575461009227563.png =1004x)]
DEBIAN目录说明
文件 | 作用 |
---|---|
control | 必须 安装包配置文件 |
preinst | 安装前执行的脚本 |
postinst | 安装后执行的脚本 |
prerm | 卸载前执行的脚本 |
postrm | 卸载后执行的脚本 |
control内字段说明
注意 文件末尾必须保留一个空行
必须字段
-
Package 包名
-
Version 版本号
-
Section 软件的类别,可以是utils、net、mail、text、devel等等
-
Priority 软件对于系统的重要程度,如required、standard、 optional、extra等等
-
Architecture 架构,32位软件填写i386,64位软件填写amd64,如果是既能在32位系统运行又能在64为系统运行可以填写all
查看当前系统的架构
dpkg --print-architecture
添加外部框架(需要支持多种框架才行)
sudo dpkg --add-architecture amd64(填的是你要添加的外部框架,amd,arm,x86)
查看添加的外部architecture
sudo dpkg --print-foreign-architectures
删除外部architecture
sudo dpkg --remove-architecture amd64
若删除时出现错误: dpkg: error: cannot remove architecture ‘amd64’ currently in use by the database
则先将相关安装卸载,执行以下命令就可以成功删除了:sudo apt-get remove .*:amd64 sudo dpkg --remove-architecture amd64
-
Installed-Size 安装后大小,单位为kb
-
Maintainer 维护者,为**维护者名<邮箱>**的形式
-
Provides 供应者
-
Description 描述
非必须字段
-
Essential 申明是否是系统最基本的软件包,值为yes或者no,如果是的话,这就表明该软件是维持系统稳定和正常运行的软件包,不允许任何形式的卸载
-
Depends 软件所依赖的其他软件包和库。如果是依赖多个软件包,彼此之间采用英文逗号隔开(例如该值为libc6, default-jre,说明该软件包依赖于libc6和default-jre这两个软件包,缺一不可)
-
Pre-Depends 软件安装前必须安装、配置依赖性的软件包和库
-
Recommends 这个字段表明推荐的安装的其他软件包
-
Suggests 建议安装的其他软件包
Package:zbgj Version:9.0.20221228.001 Section:utils Priority:optional Architecture:amd64 Installed-Size:291430.4 Maintainer:swsk33<example@163.com> Provides:gxcx Description:招标管家测试安装包
安装目录
linux安装时,会把除DEBIAN的目录,全部放到根目录(/)中,因此需要自己在安装目录中,提前模拟划分好目录结构
比如如果我想把程序安装到/usr/share下,按如下去设置路径(packTest为我要打包的目录)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9R91FXXK-1680850276681)(vx_images/278724209247729.png =771x)]生成快捷方式到开始菜单,并拷贝到桌面的操作流程
-
linux的安装程序,是在/usr/share/applications目录下,放置一个.desktop文件,该文件内配置好快捷方式的相关信息
-
配置完后,外边名字不会显示.desktop,而是显示设置的中文名称
[Desktop Entry]#快捷方式标记 Name=ZBGJAvaProduct#英文名称 Name[zh_CN]=招标管家测试#中文名称 Comment=zbgjtest# Comment[zh_CN]=招标管家测试# Version=1.0#版本号 Exec=/usr/share/ZBGJAvaProduct/ZBGJAvaProduct#启动程序路径 Path=/usr/share/ZBGJAvaProduct/#启动程序所在目录 Icon=/usr/share/ZBGJAvaProduct/1.ico#快捷方式的图标 Terminal=false#打开时是否弹出终端 Type=Application#应用类型 Categories=Network#应用分类 StartupNotify=false#打开时是否询问
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YhpU1R8D-1680850276681)(vx_images/430985209240398.png =737x)]
-
要在桌面生成快捷方式,直接在postinst文件中,执行cp指令,拷贝到桌面即可
cp /usr/share/applications/ZBGJAvaProduct.desktop /home/www/Desktop/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dcM3dWWJ-1680850276682)(vx_images/443485509236953.png =932x)]
打包指令
在要打包的目录的上级目录,进入终端,执行如下命令
dpkg -b "packTest"(要打包的目录) "ZBGJAvaProduct.deb"(安装包名称)
安装时注意事项
有时双击可能安装会失败,可能是管理员权限或其他问题
1、管理员权限进入安装包所在目录,右键空白位置,以管理员运行,重新尝试双击安装包
2、仍不行
尝试按如下指令进行安装dpkg -i --force-overwrite ZBGJAvaProduct.deb(安装包名称)