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