deb怎么安装(deb打包教程)

什么是DEB文件?以.deb结尾的文件称为Debian软件包文件,用于在Linux上安装应用程序。DEB文件仅用于基于Debian的Linux发行版,如Ubuntu、统信UOS

什么是 DEB 文件?

以.deb结尾的文件称为 Debian 软件包文件,用于在 Linux 上安装应用程序。DEB 文件仅用于基于 Debian 的 Linux 发行版,如Ubuntu 、统信UOS、麒麟系列等基于Linux内核的操作系统。

目录结构创建

deb怎么安装(deb打包教程)

 

DEB打包目录结构基本固定,不要问我为什么要这样定义,其实我也想知道。你暂且按我的步骤来,保证打包无恙,但有以下几点需要注意:

  • timedeb是自己定义,名字随意起,但后面需要跟版本号,我这里是1.0.0.0,如果不加版本号生成tar时会报错。
  • bin下放可执行文件及图标,比如:我这里timePy是用Python pyinstaller生成的可执行程序,由于我只是测试,没有准备图标。
  • timedeb.desktop是桌面文件,要保证文件名(我这里是timedeb)和info里的appid保持一致。安装的时候就能够自动把桌面文件添加到/usr/share/applications,在启动器中就能够找到应用图标。

timedeb.desktop文件内容(供参考)

[Desktop Entry]Version=1.0.0.0Encoding=UTF-8Name=timePyComment=Client for single sign on UOS systemExec=/opt/apps/timedeb/bin/timePy %uIcon=/opt/apps/com.ultra.sso/icon/sso.icoTerminal=falseType=ApplicationCategories=Application;StartupNotify=trueName[zh_CN]=timePyGenericName[zh_CN]=Comment[zh_CN]=UOS时间日历MimeType=x-scheme-handler/timePy

info文件内容(供参考)

{        \"appid\": \"timedeb\",        \"name\": \"timePy\",        \"version\": \"1.0.0.0\",        \"arch\": [\"amd64\"],        \"permissions\": {                \"autostart\": false,                \"notification\": false,                \"trayicon\": false,                \"clipboard\": false,                \"account\": false,                \"bluetooth\": false,                \"camera\": false,                \"audio_record\": false,                \"installed_apps\": false        }}

生成deb包

在timedeb-1.0.0.0目录下执行dh_make命令,如果命令不存在,则需要安装。

#安装指令命令apt install dh-make#打包命令dh_make --createorig -s -y

命令执行成后,在timedeb-1.0.0.0下会生成debian目录,在上一级目录会生成
timedeb_1.0.0.0.orig.tar.xz文件。

修改control文件

control 主要用来描述软件的版本,名称等详细信息,如下所示:

Package — 软件包名称

Version — 版本号

Description — 软件描述

Section — 软件类型 utils, net, mail, text, x11

Priority — 软件对系统的重要程度,required, standard, optional, extra 等

Architecture — 软件支持的平台,如 amd64 arm64 等

Installed-Size — 软件尺寸

Depends — 软件依赖的其他软件和库文件等,多个文件用逗号隔开

Pre-Depends — 安装软件前需要安装的库或软件

Maintainer — 打包者信息或者联系方式

安装过程中各个脚本的调用次序如下, 这些脚本均为 bash shell:

preinst 文件于软件包安装之前会被调用

postinst 文件于软件包安装之后被调用

prerm 文件于软件包卸载之前调用

postrm 文件于软件包卸载之后调用

control文件内容(供参考)

Source: timedebSection: unknownPriority: optionalMaintainer: 小逗IT Build-Depends: debhelper (>= 11)Standards-Version: 4.1.3Homepage: #Vcs-Browser: https://salsa.debian.org/debian/timedeb#Vcs-Git: https://salsa.debian.org/debian/timedeb.gitPackage: timedebArchitecture: anyDepends: ${shlibs:Depends}, ${misc:Depends}Description: 这里是描述信息 详细描述(注意这一行前面要留一个空格!)

新建 install 文件

在debian 目录下新建 install 文件 ,文件内容如下:

timedeb/ /opt/appstimedeb/entries/applications/timedeb.desktop /usr/share/applications

修改changelog文件

把版本号 (1.0.0.0-1) 改成 (1.0.0.0),保持与上面info设定的版本号一致,不然系统读取deb的版本号就变成1.0.0.0-1,修改deb包的版本号也是在这个位置进行设置。

deb怎么安装(deb打包教程)

 

删除所有 *.ex *.EX 类型文件

rm *.ex *.EX

执行打包命令

在timedeb.1.0.0.0目录下执行如下命令:

sudo dpkg-buildpackage -rfakeroot -tc -uc -us -b

这里可能因为操作系统版本差异会有两个报错:

  1. 如果报错-rfakeroot不存在,则把-rfakeroot去掉。
  2. 如果报错dh_shlibdeps: Aborting due to earlier error,打开rules文件,在dh $@后添加:
override_dh_auto_build: override_dh_shlibdeps:--dpkg-shlibdeps-params=--ignore-missing-info override_dh_strip:

deb怎么安装(deb打包教程)

 

指令执行完成后会在timedeb-1.0.0.0目录下生成deb文件:timedeb_1.0.0.0_amd64.deb

deb安装

deb可以通过GUI方式图形化安装,我这里是统信UOS国产化操作系统,双击deb安装程序按提示操作就行了。

deb怎么安装(deb打包教程)

 

安装完成后,启动器里就能看到该程序。

deb怎么安装(deb打包教程)

 

至此,大功告成!你学废了吗?

本站部分文章来自网络或用户投稿,如无特殊说明或标注,均为本站原创发布。涉及资源下载的,本站旨在共享仅供大家学习与参考,如您想商用请获取官网版权,如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
科技百科

打印机程序服务没有运行怎么办 (后台没有运行的原因介绍)

2023-5-3 12:38:55

科技百科

鼠标右键菜单选项太多怎么删除(删除右键菜单无用项步骤)

2023-5-3 12:38:58

搜索