懒人笔记-uos打包篇
- 前言
- 1、deploy
- 2、组织打包目录
- 2.1 控制文件
- 2.1.1 control的内容:
- 2.1.2 postinst的内容:
- 2.1.3 postrm的内容:
- 2.2 执行程序
- 2.3 开机自启(可选项)
- 3、输出deb安装包
- 4、服务卸载
- 4.1 服务卸载
- 4.2 程序按照和卸载
前言
项目有好几个程序,之前在麒麟和UOS都捣鼓了下,打包没有细细研究,就用了一堆命令进行交付,结果可想而知,大米的教训!现在有时间,一堆百度配合实操,终于可以一键安装了,记录下过程,免得年纪大了回头就忘记。
1、deploy
下载源码包https://github.com/probonopd/linuxdeployqt/releases
linuxdeployqt-continuous.tar.gz ,用QT打开进行编译。这步网上很多,我也没有仔细去研究,按照网上的进行了代码屏蔽
将linuxdeployqt拷贝到/usr/local/bin目录里
运行命令:linuxdeployqt --version,有输出说明可以直接用了
2、组织打包目录
打包目录分为2大类,一类是控制文件,用来安装过程中执行一些命令,比如权限授权、复制拷贝等,另外一类就是我们编译出来的UI程序,以及相应的依赖库。
source(这个随便改)
├── DEBIAN
│ └── control
│ └── postinst (安装好了会执行)
│ └── postrm (卸载会执行,待验证)
├── opt
└── Test(这个随便改,但是一般我们都是按照工程名称来进行命名的)
├── Test(工程编译出来的程序)
└── xxx(依赖库、配置等等)
2.1 控制文件
网上很多,控制文件就3个:control、postinst、postrm(这3个文件没有后缀)授权 chmod 775 control
chmod 775 postinst
chmod 775 postrm
2.1.1 control的内容:
Package:WebDaemonSvr
Version:3.2.0.0005
Section:utils
Priority:optional
Architecture:amd64 (这个按照自己的机器来,内核)
Depends:
Installed-Size:512
Maintainer: ******
Description:***
2.1.2 postinst的内容:
#!/bin/sh
chmod 777 /etc/xdg/autostart/WebDaemonSvr.desktop
2.1.3 postrm的内容:
#!/bin/sh
if [ -f " /etc/xdg/autostart/WebDaemonSvr.desktop"]; then
rm /etc/xdg/autostart/WebDaemonSvr.desktop
fi
2.2 执行程序
先用deploy查找下应用的依赖项,命令如下:
cd WebDaemonSvr/
linuxdeployqt WebDaemonSvr(自行更换应用名称) -appimage
再用ldd命令进一步查找依赖项,内容如下:(我这里的文件名为:ldd_***.sh)
#! /bin/bash
EXE=‘WebDaemonSvr’ #我的程序名
PWD=pwd
#打包的路径
files=ldd $EXE | awk '{ if(match($3,"^/"))printf("%s "),$3 }'
cp $files $PWD
终端里面执行sudo sh ldd_***.sh
2.3 开机自启(可选项)
这个可有可没有,看自己的需求:
和opt同一级目录创建如下:/etc/xdg/autostart/***.desktop,其实这个路径就是系统的应用自启动路径,将/etc/xdg/autostart目录里的文件拷贝到相应的系统的路径里面(强调下,系统必须要有这个路径,否则相当于自定义路径了,不起作用)
3、输出deb安装包
cd build_deb/
sudo dpkg-deb -b …/build_deb …/WebDaemon_deb_1.0.0_amd64.deb
这样就完成安装包的制作啦!
重启电脑,就会按照启动项里面 .desktop里面的进行操作了。
4、服务卸载
4.1 服务卸载
由于做成了服务,运行过程卸载的话只能通过手动来卸载服务了,命令如下:
ps -aux |grep Web(Web是我项目前缀,自行修改)
kill -9 进程ID
4.2 程序按照和卸载
除了手动双击.deb包进行按照,也可以通过命令的方式来进行按照,如下:
sudo dpkg -i WebDaemon_deb_1.0.0_amd64.deb
sudo dpkg -r WebDaemon_deb_1.0.0_amd64 (control文件里面的package内容)