環境: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
三 軟件開機自啟動
方法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
