参照官网的商店打包规范,这里整理出uos下打包deb包

一、构建一个规范的软件目录

1)新建文件夹 com.appname-version 例如 com.testdeb-1.0.0.0

2)在com.testdeb.1.0.0.0文件夹下 新建 com.testdeb目录

3)在com.testdeb目录下新建entries 和 files两个文件夹,再新建一个info 文件,info文件可用命令行touch info进行创建

4)info文件

{
    "appid": "com.testdeb",
    "name": "testdeb",
    "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
    }
}

5)在entries 下新建applications文件夹 (用来存放桌面文件)

[Desktop Entry]

Name=testdeb

Comment=application for testdeb

Exec=/opt/apps/com.testdeb/files/testdeb

Icon=/opt/apps/com.testdeb/files/logo.png

Terminal=false

Categories=Utility;

Type=Application

桌面文件同windows下的桌面快捷方式一样,能够直接链接到可执行的应用程序运行。其中文件名为包名即com.testdeb,文件后缀为.desktop,保证文件名和info文件的appid及包名称一致,安装的时候就能够自动把桌面文件添加到/usr/share/applications,在启动器中就能够找到应用图标。也可以在下面的install文件中指定安装目录,把desktop文件安装到/usr/share/applications中。

com.testdeb/entries/applications/com.testdeb.desktop /usr/share/applications

6)将库和二进制可执行文件放在files目录(二进制可以执行的文件)

二、生成deb包

1)在com.testdeb.1.0.0.0目录下运行命令

dh_make --createorig -s

如果提示命令不存在,则进行安装

apt install dh-make

确认信息输入y即可

执行结束会生成一个debian文件夹

2)修改自动生成debian目录下的control文件

Source: com.testdeb
Section: unknown
Priority: optional
Maintainer: unknown <song@unknown>
Build-Depends: debhelper (>= 11)
Standards-Version: 4.1.3
Homepage: <insert the upstream URL, if relevant>
#Vcs-Browser: https://salsa.debian.org/debian/com.testdeb
#Vcs-Git: https://salsa.debian.org/debian/com.testdeb.git

Package: com.testdeb
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
 <insert long description, indented with spaces>

文件中的内容根据自己的需要进行修改

如Depends就是依赖的包,比如我们这个包依赖libccid的包,就可以在${misc:Depends}后追加,libccid,这样安装的时候会先安装libccid,libccid安装失败则无法安装,相关的依赖包还可以指定版本如libccid(>= 1.0.3),多个依赖包的安装顺序和你添加的顺序一致。

Description为安装包的描述。

3)在debian 目录下新建install文件

touch install

在install文件指定安装路径,这里填写

com.testdeb/ /opt/apps

将com.testdeb目录安装到/opt/apps目录下

4)changelog文件

把版本号 (1.0.0.0-1) 改成 (1.0.0.0),保持与上面info设定的版本号一致,不然系统读取deb的版本号就变成1.0.0.0-1

修改deb包的版本号也是在这个位置进行设置

5)删除所有ex EX结尾的文件

命令行执行

rm *.EX *.ex

6)在com.testdeb.1.0.0.0目录下执行

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

如果报错-rfakeroot不存在,则把-rfakeroot去掉,执行

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

如果报错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:

uos系统运行deb 软件包架构不匹配 uos怎么安装deb_windows

忽略那些错误

在com.testdeb-1.0.0.0同级目录中会生成deb包

com.testdeb_1.0.0.0_amd64.deb

运行即可安装

三、相关资料

1.参考该文章进行打包,大体流程是对的,有些细节是有问题的

2.官方打包说明

3.官方博客得例子