[Qt]Qt程序发布:在ubuntu下打包成Debian包的过程
生活随笔
收集整理的這篇文章主要介紹了
[Qt]Qt程序发布:在ubuntu下打包成Debian包的过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
0:在ubuntu下將Qt程序打包,發布成Debian包的過程
下面的步驟對于所有的打包程序都是通用的,所以完全可以寫一個腳本,把這個包過程自動化,但是在自動化之前,我們需要弄清楚,一步一步打包是如何進行的,下面詳細講解。
1:建立好如下文件(夾)結構
└── mydeb #目錄 名字自取|├── application #目錄 名字確定│?? ├── catchGG #目錄 自己應用程序的名字│?? │?? ├── catchGG #程序或文件 Qt生成的 或其它 可運行程序│?? │?? └── pycatchgg #程序或文件 Qt生成的 或其它 可運行程序│?? └── lib│?? ├── catchGG.desktop #文件 需要復制到/usr/share/applications/目錄,dash中可搜索│?? ├── catchGG.png #文件 應用程序在unity中顯示的圖標 需要復制到/usr/share/pixmaps/目錄│?? │?? └── DEBIAN #目錄 名字確定├── control #文件 名字不可改├── postinst #腳本文件 名字不可改 ,運行sudo dpkg -i xx.deb命令時,會運行這個腳本 ├── postrm #腳本文件 名字不可改 ,運行sudo dpkg -r app 命令時,會運行這個腳本上面結構中: mydeb目錄下面的兩個目錄 application 和 DEBIAN 名字不可改變的
mydeb/application/lib目錄下面的 應用程序圖標文件就不用說了,主要是.desktop文件 里面應該寫些什么 內容
mydeb/DEBIAN/目錄下面的三個文件的內容,是我們需要自己動手寫的
2:.desktop文件的基本內容
#下面是一個基本的例子,按下面格式,改成自己需要的內容即可[Desktop Entry] Version=0.1 #應用程序版本 Name=catchGG #應用程序名 Comment=Back up your data with one click #應用程序描述 Exec=/usr/bin/catchGG #可運行應用程序最終的絕對路徑 keywords=google,catchgg,catchGG #在dasn串搜索時,可用的關鍵字 StartupNotify=true #這個不知道是什么意思 Terminal=false #運行時不需要打開終端 Type=Application #應用程序類型,在dash和分類中會有顯示,還有其它的類型 Categories=Utility;Application; #應用程序的分類,工具/應用程序 Hidden=false #是否隱藏(否),不知道是什么意思 Icon=/usr/share/pixmaps/catchGG.png #應用程序圖標名的絕對路徑3:control文件的基本內容
#下面是一個基本的例子,就不一個一個說了,都很容易 #有一點需要說一下,很多人都不知道Depends后面的依賴庫名字是如何得到的,實際上非常容易 使用ldd命令,后面加你開發的Qt程序的名字,就可以得到你的Qt程序需要哪些動態鏈接庫(配合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腳本的基本內容
#在說腳本里面內容時,先告訴大家如何創建這個腳本,并使這個腳本具有個運行的權限 touch postinst && chmod 755 postinst #下面是這個腳本的基本內容----一個例子 #可以看到就是一個基本的shell腳本,做了如下事情 #1:告訴用戶,安裝過程中做了什么 echo命令顯示 #2:把應用程序圖標文件和.desktop文件 mv到對應的系統目錄中 (注意使用的是/applicaton/lib 這種路徑格式) #3:把可運行的Qt開發的程序,或其它二進行可運行程序(或其它庫文件)復制到系統的path路徑下 #4:設置一些基本的用戶環境變量 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腳本的基本內容
#在說腳本里面內容時,先告訴大家如何創建這個腳本,并使這個腳本具有個運行的權限 touch postrm && chmod 755 postrm#下面是這個腳本的基本內容----一個例子 #把之間安裝在系統中的文件都給刪除,就搞定了,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:總結
打包的過程照著上面的步驟,一步一步來,還是非常方便的
打包命令也非常容易,如下:
打包完成后,進行安裝,刪除測試
總結
以上是生活随笔為你收集整理的[Qt]Qt程序发布:在ubuntu下打包成Debian包的过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 出现An App ID with Ide
- 下一篇: dede织梦调用顶级二级栏目及下三级栏目