Ubuntu 20.04 打包製做DEB包詳細步驟及雷區

記錄一次Deb打包過程及踩雷警示

最近寫了一個python的小程序,但願能打包成deb文件,把這個程序弄得有頭有臉,安裝deb後能夠在應用列表和桌面看到。參考了許多資料(文後附),它們給了我不少指導,對此表示感謝。html

須要準備的

一、源代碼(前提要可執行)或者編譯好的程序,這裏只介紹python
二、能用的ubuntu系統
三、用戶的密碼
四、圖標(必定要有!)


python

這裏給你們介紹一個案例,包名叫作debpacktest,整個過程當中全部用到名字的地方,通通都是這個名字。xxx也指代這個名字。linux

1、創建目錄架構

程序是要放到一個系統中的各個部分去的。其實這個並無那麼嚴格,不必定全都要擠到/usr/lib裏邊去,放到/home等都沒有太大的問題。這裏你須要用一個文件夾模擬出linux的文件架構,只須要模擬你程序須要安放到的位置就好了。好比說我有main.py和mainform.py兩個文件,放到的文件夾是/usr/lib/debpacktest。那麼我只須要建一個大文件夾(命名隨意),cd到這個大文件夾,直接一個mkdir新建/usr /lib /debpacktest,而後把py文件丟進debpacktest文件夾。下面羅列出來的是目錄結構,多餘出來的是須要手工添加的deb包配置文件(夾)。(share部分和DEBIAN部分)ubuntu

├── debpackTotal
│   ├── DEBIAN(這個目錄要添加control文件(無後綴名),可選添加postinst等)
│   └── usr
│       ├── lib
│       │   └── debpacktest(預約要安裝到系統中的文件)
│       │       ├── mainform.py
│       │       └── main.py
│       └── share
│           ├── applications(在這裏添加xxx.desktop,使應用中可以加載出你的應用)
│           └── icons(你的圖標,這個必須有) **踩雷一**

在DEBIAN目錄下製做control文件

cd到DEBIAN,在命令行輸入(固然,你用gedit也行)小程序

vim control

在其中粘貼:vim

Package: debpacktest
Version: 1.0.0
Architecture: amd64
Maintainer: bakamitai
Description: just a test

Package:你的包名
Version:版本
Architecture:架構
Maintainer:維護者
Description:解釋



bash

括號後的內容 根據你本身的須要去改變
而後保存
架構

在/usr/share/applications下製做桌面圖標 debpacktest.desktop

這一步很是重要 關係到你可否在應用列表出現你本身的程序,清必定按照下面的步驟完成。
首先在/usr/share/applications/下新建debpacktest.desktop這個文件。
裏面的內容是:

app

[Desktop Entry]
Name=debpacktest
Comment=An example
Exec=/usr/lib/debpacktest/main.py
Icon=/usr/share/icons/debpacktest.png
Terminal=false
Type=Application
X-Ubuntu-Touch=true
Categories=Development

Name:你的包名
Comment:評論 註釋
Exec:這裏很是重要!這裏若是不對 會直接致使這個圖標沒有辦法顯示。對於python來講,必定要具體到執行哪一個py。這裏執行的是main.py。不要忘記chmod,給main.py加上可執行權限。踩雷二
Icon:圖標,不能夠忽略 踩雷三
Terminal:是否在終端執行。這裏是QtPy窗體,不須要。若是須要的話能夠參考vim的desktop文件 踩雷四
Categories:分類。能夠在引用和參考那裏尋找更多。




post

剩下的東西 都不要動 都不要動
文件不能有多餘的空格! 踩雷五

desktop文件要有可執行權限!

打包

到這裏,一個基本的deb軟件包就大功告成了。
咱們返回到debpackTotal的上級目錄。咱們執行

sudo dpkg -b debpackTotal debpacktest_1.0.0_amd64.deb

包的命名要符合規範,我這裏是隨便打的。
檢驗的話,能夠輸入

sudo dpkg -i debpacktest_1.0.0_amd64.deb

在個人機器上,運行很完美,我在應用列表裏看到了個人程序。
若是要卸載,請執行

sudo dpkg -r debpacktest

注意 這裏面的參數 是包名,並不是包的文件名,就是一開始我讓大家注意的那個全局命名。

關於postinst文件(即製做桌面圖標)

cd到DEBIAN目錄,新建postinst文件,沒有後綴。這個文件是在安裝完包之後執行的腳本
複製如下內容:

#!/bin/bash
sudo cp /usr/share/applications/debpacktest.desktop ~/桌面
echo POST INSTALLATION FUNCTION EXECUTED

這裏是在包安裝完成後,執行代碼,將desktop文件複製到桌面。不一樣語言的發行版須要注意桌面的路徑。踩雷六
postinst要有可執行權限。踩雷七

從新打包,安裝,檢驗,發現桌面上多了個東東,是咱們複製過去的文件,但並無顯示圖標。
咱們須要右擊它,選擇容許執行。你想要的結果便出現了。

總結

以上就是簡單製做一個基本的deb文件的所有步驟以及部分擴展。須要耐心。Enjoy it.

參考&引用

https://www.ibm.com/developerworks/cn/linux/l-cn-dtef/index.html https://www.cnblogs.com/young525/p/5873806.html

相關文章
相關標籤/搜索