怎么開(kāi)始你的第一次打包?
太復(fù)雜的包咱們打不來(lái),咱們先從最簡(jiǎn)單的壁紙包開(kāi)始打起。
“打包packing” 是什么?在 Linux 語(yǔ)境中,“打包”是指制作可以在 Linux 上用軟件包管理器來(lái)安裝、更新和卸載的軟件包。
你肯定要問(wèn)了,什么要打包?舉例來(lái)說(shuō),你肯定有過(guò)拍一些照片并且將它們?cè)O(shè)置為壁紙的經(jīng)歷,對(duì)吧。一個(gè)個(gè)傳到計(jì)算機(jī)上去挺累的。把這些收集起來(lái),打成一個(gè)壁紙包,與其他人分享是個(gè)不錯(cuò)的選擇。順便,通過(guò)打包,也可以對(duì) Debian 的軟件包有個(gè)大致的了解。
背景介紹
《崩壞 3》,是一個(gè)我很喜歡玩的游戲,但它不支持 Linux 平臺(tái),所以,望梅止渴的我只好把這些壁紙進(jìn)行打包,以此紀(jì)念和女武神們并肩戰(zhàn)斗過(guò)的時(shí)光。
本文中介紹的打包是給 Debian/Ubuntu 系所用的 deb 包,其他系或獨(dú)立發(fā)行版請(qǐng)按所屬發(fā)行版的官方手冊(cè)進(jìn)行打包工作。
準(zhǔn)備工作
先準(zhǔn)備如下工具 wget、tar、dh-make、debmake、lintian(有一些應(yīng)該在你 Linux 上已經(jīng)安裝過(guò)了):
~ $ sudo apt install wget tar dh-make debmake lintian
先建立打包文件夾:
make $ mkdir -p honkai-impact3-0.1/usr/share/background/honkai-impact3
更換壁紙的時(shí)候你應(yīng)該注意到了,通常壁紙的存放位置都是在 /usr/share/background 目錄里的,所以這里建立了相應(yīng)的多級(jí)目錄。
你也可以用你自己拍攝的照片來(lái)打包,本文所用的演示圖片均來(lái)自于《崩壞 3》官網(wǎng),你可以自行下載。
開(kāi)始打包
然后,退回到上級(jí)目錄里,將存放壁紙的目錄壓縮成一個(gè) tar 包:
honkai-impact3-0.1 $ cd ..
make $ tar -cvzf honkai-impact3-0.1.tar.gz honkai-impact3-0.1/usr/share/background/honkai-impact3
壓縮包創(chuàng)建好之后,我們還得設(shè)置兩個(gè)變量,這樣軟件包維護(hù)工具就可以正確識(shí)別維護(hù)者信息了:
make $ cat >> ~/.bashrc <<EOF
DEBEMAIL="bronya_zaychik@st_freya_academy.edu"
DEBFULLNAME="Bronya Zaychik"
export DEBEMAIL DEBFULLNAME
EOF
make $ . ~/.bashrc
此處:
- DEBEMAIL 寫(xiě)你的郵箱地址
- DEBFULLNAME 寫(xiě)維護(hù)者的名字
初始化
make $ cd honkai-impact3-0.1
honkai-impact3-0.1 $ dh_make -f ../honkai-impact3-0.1.tar.gz
Type of package: (single, indep, library, python)
[s/i/l/p]?
Maintainer Name : Bronya Zaychik
Email-Address : bronya_zaychik@st_freya_academy.edu
Date : Wed, 02 Feb 2022 07:00:28 +0000
Package Name : honkai-impact3
Version : 0.1
License : blank
Package Type : library
Are the details correct? [Y/n/q]
dh_make 是個(gè)不錯(cuò)的工具,這工具用于初始化壓縮包并生成模板文件。下面的 debian 文件夾就是用這個(gè)工具生成的。
在初始化完成之后,你會(huì)看到如下文件:
honkai-impact3-0.1 $ cd ..
make $ ls -F
honkai-impact3-0.1/
honkai-impact3-0.1.tar.gz
honkai-impact3_0.1.orig.tar.gz
而 debian 文件夾里卻有了很多模板文件,在一陣怒砍之后,只留下如下文件:
make $ ls -F honkai-impact3-0.1/debian/
source/
changelog
control
copyright
rules
其中,changlog 文件是用來(lái)記錄版本更新內(nèi)容的變更日志。
例如:
honkai-impact3-0.1 $ cat debian/changelog
honkai-impact3-background (0.1-1) unstable; urgency=medium
* 2020.8.17 首次打包完成
* 2022.2.2 重新打包
-- Bronya Zaychik <bronya_zaychik@st_freya_academy.edu> Wed, 02 Feb 2022 07:20:00 +0000
honkai-impact3-background (0.1-1) unstable; urgency=medium
* Initial release
-- Bronya Zaychik <bronya_zaychik@st_freya_academy.edu> Wed, 02 Feb 2022 07:00:28 +0000
control 文件用來(lái)記錄壁紙包的版本信息:
honkai-impact3-0.1 $ cat debian/control
Package: honkai-impact3-background
Version: 0.1-1
Architecture: all
Maintainer: Bronya Zaychik <bronya_zaychik@st_freya_academy.edu>
Section: x11
Priority: optional
Homepage: https://gitee.com/PokerFace128/K423_Lab_Soft
Description: This is the game wallpaper of the HokaiImpact3.
TECH OTAKUS SAVE THE WORLD
說(shuō)明如下:
- 第 1-2 行是包名和版本號(hào)
- 第 3 行是可以編譯該二進(jìn)制包的體系結(jié)構(gòu),通常文本、圖像、或解釋型語(yǔ)言腳本所生成的二進(jìn)制包都用 Architecture: all
- 第 4 行是維護(hù)者信息
- 第 5 行是分類(lèi),這里我們選擇為 x11,這是不屬于其他分類(lèi)的為 X11 程序
- 第 6 行是優(yōu)先級(jí),這個(gè)為常規(guī)優(yōu)先級(jí)。
- 第 7 行是維護(hù)者的個(gè)人主頁(yè),GitHub、Gitee,甚至是你的 BiliBili 主頁(yè)都可以。
- 第 8 行是對(duì)這個(gè)軟件包的描述
- 第 9 行建議寫(xiě)點(diǎn)什么上去,這樣在用 lintian 檢查的時(shí)候就不會(huì)空了。
最后是 copyright 文件,用來(lái)存放版權(quán)信息。就是該軟件包內(nèi)文件的版權(quán)說(shuō)明。至于這個(gè)示例壁紙包,由于版權(quán)屬于該游戲出品方,作為演示用途,我這里就沒(méi)填。
開(kāi)始打包
只需一個(gè)命令,就可輕松打包:
make $ cd honkai-impact3-0.1/
honkai-impact3-0.1 $ dpkg-buildpackage -us -uc
你應(yīng)該用過(guò) dpkg -i 這條命令,dpkg 工具不只能安裝,還能打包和拆包。
啪的一下,一個(gè)壁紙包就這樣打好了:
honkai-impact3-0.1 $ cd ../
make $ ls -F
honkai-impact3-0.1/
honkai-impact3_0.1-1_amd64.changes
honkai-impact3_0.1-1.debian.tar.xz
honkai-impact3_0.1.orig.tar.gz
honkai-impact3_0.1-1_amd64.buildinfo
honkai-impact3_0.1-1_amd64.deb
honkai-impact3_0.1-1.dsc
honkai-impact3-0.1.tar.gz
接下來(lái)用 lintian 檢查
make $ lintian honkai-impact3_0.1-1_amd64.deb
E: honkai-impact3-background: copyright-contains-dh_make-todo-boilerplate
E: honkai-impact3-background: helper-templates-in-copyright
W: honkai-impact3-background: copyright-has-url-from-dh_make-boilerplate
這里顯示我沒(méi)填 copyright 文件,這里需要你填入版權(quán)信息,像壁紙類(lèi)的話(huà),通常都是 CC 協(xié)議。
打包好之后就像這樣:
如果你想了解關(guān)于 deb 打包的更多內(nèi)容,請(qǐng)看??鏈接??
作者注:因讀者多次吐槽,文章經(jīng)過(guò)了反復(fù)修改。詳情請(qǐng)看 GitHub 上的 PR。
作者簡(jiǎn)介:PokerFace,一個(gè)會(huì)空中劈叉的老艦長(zhǎng)(睿智清潔工)。