如何使用系統 V 初始化腳本製作 Ubuntu 包?
正如標題所說,我想製作一個人們可以下載的 ubuntu 包,
apt
並且我想使用 System V 腳本設置該包,以便人們可以啟動和停止服務(如mysql
)。我已經閱讀了這篇文章https://packaging.ubuntu.com/html/packaging-new-software.html但它太基礎了,並沒有完全理解它,我如何告訴包裝器在 wich 文件夾中的內容是什麼?
我有點失落,我會很感激任何幫助。謝謝。
本指南非常有用https://blog.serverdensity.com/how-to-create-a-debian-deb-package/
這裡還有指南使用的正確文件https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging
以下是包創建的基礎知識。它們適用於廣泛的系統,從 FreeBSD 和 OpenBSD 到 Arch Linux、Debian Linux 和 Ubuntu Linux。
一個人通過以下方式製作包裹:
- 獲取原始碼樹,通過 git 或 subversion 等,或通過下載和解壓縮存檔文件。
- 安裝必備的建構包,提供軟體編譯所需的工具。
- 應用每個作業系統的更新檔。
- 編譯二進製文件和數據文件,但是特定的軟體會這樣做。
- 建構一個暫存目錄樹,其中要打包的二進製文件和數據文件被放置在該樹中,就像在
/
安裝包後它們將被放置在下面一樣。- 使用包裹創建工具,連同運輸清單和其他一些元數據,來製作包裹。
然後將其放入包儲存庫中,可以是自己執行的,也可以是由作業系統維護人員發布的。後一個過程有很多後勤和政治障礙。在這兩種情況下,您都需要處理簽名的事情。
細節因作業系統而異,或者更確切地說因包裝系統而異。例如,包清單文件的結構方式各不相同。並且Debian
build-essential
元包不是一個通用的東西。但這些是一般原則。因此,Ubuntu 頁面上的所有這些亂七八糟的工具都是對此的高級包裝器,它們的作用是維護一個原始碼控制儲存庫,其中包含您在原始原始碼之上添加的所有額外內容。
Debian 工具有些不同。事實上,有三種不同風格的 Debian 工具,包括“deb helper”。
另請注意,來自 WWW 周圍的不同人的 Debian 說明通常是針對您正在下載現有的Debian 原始碼包並建構它的想法,而不是從頭開始編寫所有輔助的Debian 打包內容。這樣的包具有 Debian 打包元數據、控製文件和更新檔,已在原始碼樹中提供。它是原始來源加上 Debian 包裝的東西。
一般來說,如果一個包給它一個“安裝”的目標目錄而不是目錄,它就會自己建構一個適當的登台樹
/
。如果您要打包自己的軟體,則必須提供一種機制來正確“安裝”到獨立的暫存區。(我有“斜線包”包,帶有一個package/stage
腳本,可以將所有內容從command/
,manual/
,guide/
,library/
等中提升到適合的暫存區域/usr
。)最後:不,您不提供
rc
用於啟動和停止服務的 van Smoorenburg 腳本。自 2006 年以來,這並不是 Ubuntu 上的原生方式,距今已有近 15 年了。您提供 systemd 單元文件。即使您想為不使用 systemd 的Debian人員提供 van Smoorenbrgrc
腳本,您也可以根據手冊頁中的範例提供 2014 年推出的新樣式van Smoorenburg腳本,其內容與大多數(過時了)全球資訊網文件會告訴你。rc``init-d-script
現在,您可以返回那些(和其他)WWW 頁面上的 、 和類似
debian/control
內容的詳細資訊。debian/rules
進一步閱讀
- /etc/init.d/skeleton 在哪裡?
- https://askubuntu.com/a/707750/43344
- https://unix.stackexchange.com/a/332441/5132
- 喬納森·德博因·波拉德 (2018)。“在頂部添加特定於作業系統的包裝” slashpackage 上的 gen。經常給出答案。