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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM