UOS 打包问题

项目需要,需要将Qt开发的程序部署到UOS系统,最终目标要求在纯净的系统上能够运行,主要记录打包过程中遇到的问题,方便后面再用。

一、安装Qt 5.15.2

使用的Qt版本是Qt5.15.2,此次为在线安装(源码编译后续在记录)为加速安装,采用清华镜像

https://mirrors.tuna.tsinghua.edu.cn/qt/

首先,赋予在线安装器运行权限

sudo 777 chmod qt-xxxxxx.run

./ qt-xxxxxx.run --mirror  https://mirrors.tuna.tsinghua.edu.cn/qt/

Qt 5.15.2 存在bug, 部分组件是没有的(官方已经确认),勾选时需要注意。

安装完成后,需要配置环境变量

vim ~/.bashrc(用户环境) 或 sudo vim ./etc/profile(系统环境)

#conf qt env
export PATH=~/Qt/5.15.2.0/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=~/Qt/5.15.2.0/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=~/Qt/5.15.2.0/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=~/Qt/5.15.2.0/gcc_64/qml:$QML2_IMPORT_PATH

source ~/.bashrc 或是重启系统(修改/etc/profile)使配置生效

二、安装 linuxdeplouqt

1. 安装 linuxdeplouqt

打包用的工具是linuxdeplouqt,类似于windows的windeployqt, 网址为

Releases · probonopd/linuxdeployqt · GitHub

尽管github提供预编译包,但是仅支持较旧的版本,因此多数需要自行编译,下载源码后,利用qt 即可进行编译

编译前需要修改部分代码:(图中选中的部分)

构建完成后,即可在bin目录下看到生成的文件,然后赋予运行权限,移动到指定目录即可

chmod 777 linuxdeployqt

sudo mv linuxdeployqt  /usr/local/bin

此处可命令行输入 linuxdeployqt进行验证

2.安装依赖

linuxdeployqt 依赖patchelf工作,因此若没有安装,请在线安装或者下载源码编译

还需要下安装 Appimagetool, 下载地址

https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage

 如果不需要打包成单独的可执行文件,可不安装.

三、打包

把编译生成的程序放到某文件夹下面,执行linuxdeployqt,若正确配置qt环境以及所需的第三方库,程序运行所需的库将会被复制此文件夹下面。修改default.desktop文件,配置快捷方式

利用linuxdeployqt 工具拷贝好应用的依赖文件后,就可以打包deb安装包了

1. deb包安装路径原理简述

 

参考Qt程序在UOS系统构建deb包,实现界面安装

打包目录与安装后目录结构对比如下:

source
├── DEBIAN
│   └── control
│   └── postinst
│   └── postrm
├── opt
    └── Test
        ├── Test
        └── xxx
照此打包目录生成deb,安装后,其目录如下:

/
├── opt
    └── Test
        ├── Test
        └── xxx

规划好安装路径后,依次配置*.desktop桌面快捷方式、control、postinst和postrm,(文件的编写可参考 使用Linux dpkg 打包 - 刘达人186 - 博客园 (cnblogs.com))

然后使用dpkg命令构建deb包

dpkg -b mydeb mydeb.deb #第一个参数为将要打包的目录名,第二个参数为生成包的名称

打包完成即可命令行安装或者双击安装

四、仍待解决的问题

UOS专业版启动菜单有右键“卸载”命令,利用其卸载时会报错,利用dpkg -r 卸载可正常卸载。

目前,看到博客使用upTool进行打包,有待尝试,后续补充。

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值