[Qt]Qt程序发布:在ubuntu下打包成Debian包的过程
生活随笔
收集整理的這篇文章主要介紹了
[Qt]Qt程序发布:在ubuntu下打包成Debian包的过程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
0:在ubuntu下將Qt程序打包,發(fā)布成Debian包的過程
下面的步驟對于所有的打包程序都是通用的,所以完全可以寫一個腳本,把這個包過程自動化,但是在自動化之前,我們需要弄清楚,一步一步打包是如何進(jìn)行的,下面詳細(xì)講解。
1:建立好如下文件(夾)結(jié)構(gòu)
└── mydeb #目錄 名字自取|├── application #目錄 名字確定│?? ├── catchGG #目錄 自己應(yīng)用程序的名字│?? │?? ├── catchGG #程序或文件 Qt生成的 或其它 可運行程序│?? │?? └── pycatchgg #程序或文件 Qt生成的 或其它 可運行程序│?? └── lib│?? ├── catchGG.desktop #文件 需要復(fù)制到/usr/share/applications/目錄,dash中可搜索│?? ├── catchGG.png #文件 應(yīng)用程序在unity中顯示的圖標(biāo) 需要復(fù)制到/usr/share/pixmaps/目錄│?? │?? └── DEBIAN #目錄 名字確定├── control #文件 名字不可改├── postinst #腳本文件 名字不可改 ,運行sudo dpkg -i xx.deb命令時,會運行這個腳本 ├── postrm #腳本文件 名字不可改 ,運行sudo dpkg -r app 命令時,會運行這個腳本上面結(jié)構(gòu)中: mydeb目錄下面的兩個目錄 application 和 DEBIAN 名字不可改變的
mydeb/application/lib目錄下面的 應(yīng)用程序圖標(biāo)文件就不用說了,主要是.desktop文件 里面應(yīng)該寫些什么 內(nèi)容
mydeb/DEBIAN/目錄下面的三個文件的內(nèi)容,是我們需要自己動手寫的
2:.desktop文件的基本內(nèi)容
#下面是一個基本的例子,按下面格式,改成自己需要的內(nèi)容即可[Desktop Entry] Version=0.1 #應(yīng)用程序版本 Name=catchGG #應(yīng)用程序名 Comment=Back up your data with one click #應(yīng)用程序描述 Exec=/usr/bin/catchGG #可運行應(yīng)用程序最終的絕對路徑 keywords=google,catchgg,catchGG #在dasn串搜索時,可用的關(guān)鍵字 StartupNotify=true #這個不知道是什么意思 Terminal=false #運行時不需要打開終端 Type=Application #應(yīng)用程序類型,在dash和分類中會有顯示,還有其它的類型 Categories=Utility;Application; #應(yīng)用程序的分類,工具/應(yīng)用程序 Hidden=false #是否隱藏(否),不知道是什么意思 Icon=/usr/share/pixmaps/catchGG.png #應(yīng)用程序圖標(biāo)名的絕對路徑3:control文件的基本內(nèi)容
#下面是一個基本的例子,就不一個一個說了,都很容易 #有一點需要說一下,很多人都不知道Depends后面的依賴庫名字是如何得到的,實際上非常容易 使用ldd命令,后面加你開發(fā)的Qt程序的名字,就可以得到你的Qt程序需要哪些動態(tài)鏈接庫(配合grep qt命令使用)Package:catchGG Version:0.1 Section:utils Priority:extra Maintainer:Me You(QQ:397916230) Depends:libqt5widgets5(>=5.0),libqt5gui5(>=5.0),libqt5core5a(>=5.0),libqt5x11extras5(>=5.0),libqt5x11extras5-dev(>=5.0) Architecture:amd64 Description: The software is an opensource package from 397916230@qq.com4:postinst腳本的基本內(nèi)容
#在說腳本里面內(nèi)容時,先告訴大家如何創(chuàng)建這個腳本,并使這個腳本具有個運行的權(quán)限 touch postinst && chmod 755 postinst #下面是這個腳本的基本內(nèi)容----一個例子 #可以看到就是一個基本的shell腳本,做了如下事情 #1:告訴用戶,安裝過程中做了什么 echo命令顯示 #2:把應(yīng)用程序圖標(biāo)文件和.desktop文件 mv到對應(yīng)的系統(tǒng)目錄中 (注意使用的是/applicaton/lib 這種路徑格式) #3:把可運行的Qt開發(fā)的程序,或其它二進(jìn)行可運行程序(或其它庫文件)復(fù)制到系統(tǒng)的path路徑下 #4:設(shè)置一些基本的用戶環(huán)境變量 echo "Start to install" mv -f /application/lib/catchGG.desktop /usr/share/applications/ mv -f /application/lib/catchGG.png /usr/share/pixmaps/ mv -f /application/catchGG/* /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"5:postrm腳本的基本內(nèi)容
#在說腳本里面內(nèi)容時,先告訴大家如何創(chuàng)建這個腳本,并使這個腳本具有個運行的權(quán)限 touch postrm && chmod 755 postrm#下面是這個腳本的基本內(nèi)容----一個例子 #把之間安裝在系統(tǒng)中的文件都給刪除,就搞定了,echo "Start to remove" rm -rf /usr/share/applications/catchGG.desktop rm -rf /usr/share/pixmaps/catchGG.png rm -rf /usr/bin/catchGG rm -rf /usr/bin/pycatchgg echo "Remove finished!6:總結(jié)
打包的過程照著上面的步驟,一步一步來,還是非常方便的
打包命令也非常容易,如下:
打包完成后,進(jìn)行安裝,刪除測試
總結(jié)
以上是生活随笔為你收集整理的[Qt]Qt程序发布:在ubuntu下打包成Debian包的过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 出现An App ID with Ide
- 下一篇: Ubuntu系统如何卸载并安装新版本的j