linux软件deb打包及开机管理员自启动

环境:Ubuntu 18.04/16.04  Qt:5.12.6

一 deb打包

1.建立目录结构

 

 

 

2.目录内容

1) 子目录DC520:

 

 

 

Get以上内容步骤:

(1)   创建目录DC520(自己软件的名字,可变),将Qt release编译生成的DC520可执行文件放在该软件包中。

 

 

 

(2) 生成依赖库,创建pack.sh文件 命令:touch pack.sh

内容:

#!/bin/sh

exe="DC520"

destDir=`pwd`

dependenlibList=$(ldd $exe | awk '{if (match($3,"/")){ printf("%s "),$3} }')

cp $dependenlibList $destDir

执行pack.sh 生成依赖库

 

 

 

(3) 可以将自己软件需要的配置文件等也放入上面文件夹。

(4) 创建DC520.sh 内容如下(设置临时环境变量并启动程序):

#!/bin/sh

appname=`basename $0 | sed  s,\.sh$,,`

dirname=`dirname $0`

tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ];

then

 dirname=$PWD/$dirname

fi

LD_LIBRARY_PATH=$dirname

export LD_LIBRARY_PATH

$dirname/$appname "$@"

2) lib目录

 

 

 

(1)   DC520.desktop

[Desktop Entry]

Version=0.1 #应用程序版本

Name=DC520 #程序名

Comment=create by  Charles#注解

Exec=/usr/bin/DC520/DC520.sh#执行路径

Keywords=google,DC520,dc520#搜索关键字

StartupNotify=false

Terminal=false

Type=Application

Categories=Utility;Application;System;Archiving;

Hidden=false

Icon=/usr/share/pixmaps/DC520.png#图标

(2) 图标

放自己的图标

3) DEBIAN目录

 

 

 

(1)   control文件内容

Package:DC520

Version:0.1

Section:utils

Priority:extra

Maintainer:Charles

Depends: #空 因为库已经在DC520里面了

Architecture:amd64

Description:the software is an opensource package from DAKEWE

(2)   postinst文件内容

创建命令:touch postinst && chmod 755 postinst

echo "Start to install"

mv -f /application/lib/DC520.desktop /usr/share/applications/

mv -f /application/lib/DC520.png /usr/share/pixmaps/

mv -f /application/DC520/* /usr/bin/

 

echo "set QT_PLUGIN_PATH in file .profile"

echo "QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins" >> ~/.profile

echo "Install ok"

(3)   postrm文件内容

创建命令:touch postrm&& chmod 755 postrm

echo "Start to remove"

rm -rf /usr/share/applications/DC520.desktop

rm -rf /usr/share/pixmaps/DC520.png

rm -rf /usr/bin/DC520

echo "Remove finished"

3 打包命令

打包命令:sudo dpkg -b mydeb/ DC520_0.1_amd64.deb (文件名自定义)

安装命令:sudo dpkg -i DC520_0.1_amd64.deb

卸载命令:sudo dpkg -r DC520(app名字)

 

参考资料:https://segmentfault.com/a/1190000005029385

二 安装以后可能遇到的问题

1.  有ubuntu有Qt环境debà无Qt环境上 报错缺少xcb等

解决过程:

1 在运行目录下添加platform文件夹(来自QT的安装路径的lib目录下)。

2 将libQt5DBus.so、libQt5DBus.so.5、libQt5XcbQpa.so、libQt5XcbQpa.so.5这四个库拷到执行目录下。

3 如果还不能执行,调试时,有一个技巧,打开插件调试配置

export QT_DEBUG_PLUGINS=1

4 再次执行脚本文件DC520.sh 会有详细的报错。会有缺失库的相关信息 提示缺哪个就拷哪个。

参考资料:https://blog.csdn.net/qq21497936/article/details/85396652

https://blog.csdn.net/sinat_26106275/article/details/82778951?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-2&spm=1001.2101.3001.4242

 

三 软件开机自启动

方法1:将DC520.desktop复制到/etc/xdg/autostart

参考资料:https://blog.csdn.net/zilanpotou182/article/details/71173361

 

四 以管理员权限登录并跳过输入密码

1 以管理员身份登录

1)下载gksu插件 sudo apt-get install gksu

2)在desktop文件中执行语句前添加 gksu 关键字

2 跳过输入密码

1)使用sudo gedit /etc/sudoers编辑该文件

2)将%sudo ALL=(ALL:ALL) ALL 屏蔽

修改为:%sudo ALL=(ALL:ALL) NOPASSWD: ALL

posted @ 2020-12-31 15:01  一笔一世界  阅读(2260)  评论(0编辑  收藏  举报