目录
安装打包软件
git clone https://github.com/probonopd/linuxdeployqt.git
cd linuxdeployqt
- 编辑tools/linuxdeployqt/main.cpp文件,注释掉版本判断:
- 在linuxdeployqt目录下执行:
qmake
make -j
sudo make install
cd bin
sudo chmod a+x linuxdeployqt
sudo cp linuxdeployqt /usr/local/bin
- 安装完成后使用 linuxdeployqt -v 查看
编译patchelf
git clone https://github.com/NixOS/patchelf.git
cd patchelf
./bootstrap.sh
./configure
make -j
make check
sudo make install
- 如果出现
- autoreconf: not found
- 安装:
sudo apt-get install autoconf automake libtool
sudo apt-get install libffi-dev
安装AppImageKit
- 依次执行命令:
cp appimagetool-x86_64.AppImage appimagetool
sudo chmod a+x appimagetool
sudo mv appimagetool /usr/local/bin
配置环境变量
- 打开 ~/.bashrc,根据安装的QT目录进行添加,添加完后执行 source ~/.bashrc
export PATH=/home/ubuntu/Qt/5.15.2/gcc_64/bin::$PATH
export LD_LIBRARY_PATH=/home/ubuntu/Qt/5.15.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/ubuntu/Qt/5.15.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/ubuntu/Qt/5.15.2/gcc_64/qml:$QML2_IMPORT_PATH
打包程序
- 新建文件夹 build,将编译好的程序拷贝到该文件夹下,然后在程序的目录中执行
linuxdeployqt [APP_NAME] -appimage
- 执行命令后得到:
- 参考:
打包文件结构
- 文件结构
DEBIAN中的文件
- 其中DEBIAN control文件:
package: ToolChain
Version: 0.0.2
Section: utils
Priority: optional
Architecture: amd64
Depends:
Installed-Size: 4096
Maintainer: gqzd
Description: ToolChain-deb
------- 以下为注释部分,执行时,请将从这一行开始的所有内容删除 --------
package 表示安装包的名字
version 表示次安装包的版本
architecture 当前系统的架构的信息
maintainer 此安装包的维护者
description 此安装包的描述
- postinst
#!/bin/bash
cp /usr/local/toolchain/bin/ToolChain.desktop /home/${SUDO_USER}/桌面/
chmod +x /home/${SUDO_USER}/桌面/ToolChain.desktop
sudo ldconfig -v
- prerm
#!/bin/bash
filename=/home/${SUDO_USER}/桌面/ToolChain.desktop
if [ -f ${filename} ]
then
rm ${filename}
fi
exit 0
- 赋予权限
sudo chmod 0775 postinst
sudo chmod 0775 prerm
etc中的文件
- 参考 《linux运行时找不到动态库,解决Linux系统下程序找不到动态库的方法》
- 在文件夹ld.so.conf.d下创建toolchain-lib.conf,里面是安装后程序运行时需要的库路径:
/usr/local/toolchain/lib
- 安装完后,会在/etc/ld.so.conf.d 文件夹下生成该文件。
实际安装目录
- 假如我们希望最终安装的文件在 /usr/local下,那么我们就在DEBIAN同级目录下创建 /usr/local 目录,然后将我们的程序目录放在这个文件下面即可。
- 说明:程序的快捷方式文件
[Desktop Entry]
Version=0.0.2
Name=ToolChain
Comment= xxxxxxx
Exec=/usr/local/toolchain/bin/app //安装后的绝对路径
Icon=/usr/local/toolchain/bin/app.ico //安装后的绝对路径
Terminal=false
Type=Application
Categories=Utility;Application;
执行打包命令
- 在DEBIAN上一级目录进行打包:
dpkg -b . /home/ubuntu/code/qtcode/build/debpkg/ToolChainApp-x64-0.0.2_i386.deb
- 带qml打包:
linuxdeployqt AppName -appimage -qmldir=/home/ubuntu/code/xxx/code/qml
- 查看生成后的打包文件:
dpkg 命令
- 安装:
sudo dpkg -i ToolChainApp-x64-0.0.2_i386.deb
- 卸载:
sudo dpkg -r ToolChain