参照官网的商店打包规范,这里整理出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:
忽略那些错误
在com.testdeb-1.0.0.0同级目录中会生成deb包
com.testdeb_1.0.0.0_amd64.deb
运行即可安装
三、相关资料
1.参考该文章进行打包,大体流程是对的,有些细节是有问题的
2.官方打包说明
3.官方博客得例子