制作 linux .deb 安装包

文章目录

新增文件夹 packages

打包

packages

├── DEBIAN

│ └── control #详情看下方目录

│ └── postinst #详情看下方目录

│ └── postrm #详情看下方目录

├── opt

└── TestApp

├── TestApp.sh #运行脚本(使用脚本启动程序更自由)

└── TestApp.png #桌面图标(如果不需要可以不要)

└── TestApp.desktop #桌面快捷方式 (如果不需要可以不要)

control

安装包描述

perl 复制代码
Package: TestApp
Version: 1.0.0
Section: devel
Depends:
Priority: optional
Architecture: amd64
Maintainer: Ye hai
Homepage: https://www.baidu.com/
Installed-Size: 19MB
Provides: TestApp
Conflicts: TestApp
Replaces: TestApp
Description: 2023-08-28 18 11:00 AM

postinst

安装时会执行该脚本

-- 把快捷方式拷贝到开始菜单

-- 把快捷方式拷贝到桌面

perl 复制代码
#!/bin/sh
chmod 777 /opt/TestApp/TestApp.desktop
cp /opt/TestApp/TestApp.desktop /usr/share/applications/
#cp /opt/TestApp/TestApp.desktop ~/Desktop/

postrm

卸载时执行

-- 把开始菜单快捷方式文件删除

-- 把桌面快捷方式文件删除

perl 复制代码
 #!/bin/sh

if [ -f  "/usr/share/applications/TestApp.desktop" ]
then
    rm /usr/share/applications/TestApp.desktop
fi

if [ -f "~/Desktop/TestApp.desktop" ]
then
    rm ~/Desktop/TestApp.desktop
fi

TestApp.sh

perl 复制代码
#!/bin/sh

currentDir=`cd $(dirname $0); pwd -P`
cd "$currentDir"

#system environment variable
export LD_LIBRARY_PATH=$currentDir/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$currentDir/plugins
#export QT_DEBUG_PLUGINS=1
sh -c `$currentDir/TestApp`
exit 0

TestApp.desktop

perl 复制代码
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=true
Exec=/opt/TestApp/TestApp.sh log
Name=TestApp
Icon=/opt/TestApp/robot.png

生成安装包

cd 到 packages 上一层目录执行下面命令行

perl 复制代码
dpkg -b packages TestApp.deb

安装.deb

perl 复制代码
sudo dpkg -i TestApp.deb

卸载

perl 复制代码
sudo dpkg -r TestApp

Qt 发布应用程序

相关推荐
月墨江山19 分钟前
Ubuntu 20.04 使用 Issac Gym 进行宇树G1人形机器人进行强化学习训练(Linux仿真)
linux·ubuntu·机器人
天朝八阿哥2 小时前
关于xfce4-pulseaudio-plugin中文翻译的bug
linux·debian
z202305082 小时前
linux之 remoteproc 内核实现源码分析
linux·运维·服务器
阿方索2 小时前
shell脚本
linux·运维
努力努力再努力wz2 小时前
【C++进阶系列】:万字详解智能指针(附模拟实现的源码)
java·linux·c语言·开发语言·数据结构·c++·python
QMCY_jason2 小时前
ubuntu 24.04 FFmpeg编译 带Nvidia 加速记录
linux·ubuntu·ffmpeg
matlab的学徒3 小时前
Kubernetes(K8S)全面解析:核心概念、架构与实践指南
linux·容器·架构·kubernetes
Fcy6483 小时前
初识Linux和Linux基础指令详细解析及shell的运行原理
linux·服务器·ubuntu·centos
gb42152873 小时前
linux系统中如何在root用户中将某个文件夹目录的权限赋值给其它用户(主要说的是 方法 1)
linux
qq_339554824 小时前
linux串口驱动学习
linux