目錄
deb 套件剖析
製作 deb 套件
以上製作deb套件的方式,還有哪些可改進的地方:
首頁 電腦教學 電腦知識 Linux製作deb套件如此簡單:Ubuntu的deb安裝套件檔案的內部組成分析與使用原理

Linux製作deb套件如此簡單:Ubuntu的deb安裝套件檔案的內部組成分析與使用原理

Feb 19, 2024 pm 01:21 PM
linux 文件 deb

Linux製作deb套件如此簡單:Ubuntu的deb安裝套件檔案的內部組成分析與使用原理

Deb 文件是一種用於分發和安裝 Linux Debian 及其衍生發行版程式的存檔文件,通常包含應用程式資料。它們對於處理依賴項、桌面整合以及運行安裝前和安裝後腳本非常方便。與 Deb 格式類似的另一種套件格式是 Fedora 系列發行版常用的 rpm 檔案。

本文透過範例示範如何製作簡單的deb包,解釋了deb包內各文件的作用,以及安裝後如何生效和維護。

deb 套件剖析

deb 是一種常見的 Unix ar 檔案格式,內含應用程式和其他實用程式檔案。其中的關鍵組成部分是控製檔案(control),它包含了有關 deb 套件和安裝程式的重要資訊。

  • 在內部,deb套件 包含了模擬 Linux 的典型檔案系統目錄結構的檔案集合,例如 /usr 、/usr/bin 、/opt等 。在安裝過程中,放置在其中一個目錄中的檔案將複製到實際檔案系統中的相同位置。例如 軟體包內的/usr/bin/binaryfile 這樣的二進位檔案將會安裝到系統的 /usr/bin/binaryfile。
  • 在外部,所有 deb 套件檔案都遵循特定的命名約定:
_-_.deb
登入後複製

假設您要發布名為 mynano 的程序,版本 1.0,該程序是為 64 位元處理器(AMD64)構建的。您的 deb 檔名將類似於 mynano_1.0-0_amd64.deb

製作 deb 套件

我們已準備好生成包。請確保您的系統已安裝 dpkg-deb 工具(dpkg 軟體包提供)。稍後將使用dpkg-deb產生最終的deb套件。

(1) 建立工作目錄以存放包文件,並依照先前的命名約定進行命名。

mkdir mynano_1.0-1_amd64/
登入後複製

(2) 建立內部結構 將程式檔案放在目標系統上應安裝的位置。假設您希望將可執行檔安裝到:/usr/bin/

先建立目錄:

mkdir -p mynano_1.0-1_amd64/usr/bin/
登入後複製

mkdir指令的-p標誌將建立巢狀目錄,如果其中任意目錄不存在則會自動建立。然後將可執行檔複製到其中:

# 假设你开发的程序可执行文件为 ~/YourProjects/mynano/src/targets/release/mynano
cp ~/YourProjects/mynano/src/targets/release/mynanomynano_1.0-1_amd64/usr/bin/
登入後複製

(3) 建立檔案control 此檔案位於DEBIAN目錄中(注意目錄名稱為大寫字母)

先建立資料夾:DEBIAN

mkdir mynano_1.0-1_amd64/DEBIAN
登入後複製

然後建立空檔案:control

touch mynano_1.0-1_amd64/DEBIAN/control
登入後複製

填寫control檔案內容:

Package: mynano
Version: 1.0
Architecture: amd64
Maintainer: linuxlibs 
Description: 基于nano的自定义编辑器
Depends: nano (>= 5.0)
登入後複製

其中:

  • Package– 程式名稱;
  • Version– 程式版本;
  • Architecture— 目標架構;
  • Maintainer– 包裹維護負責人的姓名和電子郵件地址;
  • Description– 程序的簡要說明。
  • Depends- 本軟體包依賴的其他軟體包。

該檔案可能包含其他有用的字段,例如Depends指出deb套件的依賴項清單。那如果借助 apt 指令安裝 deb套件的時候,就會先安裝上 nano>=5.0版本的軟體包,再安裝 mynano。

(5) 最後一步:建立 deb 套件 如下呼叫dpkg-deb:

dpkg-deb --build --root-owner-group 
登入後複製
登入後複製

在我們的範例中:

dpkg-deb --build --root-owner-group 
登入後複製
登入後複製

這裡的 –root-owner-group 標誌讓所有 deb 套件內容都歸 root 使用者所有,這是標準方法。如果沒有這樣的標誌,所有檔案和資料夾的屬主都為您當前的用戶,但考慮到deb 軟體包將安裝到的系統中並不一定存在與您同名帳號,所以使用–root-owner-group更合理。

上面的指令將在工作目錄旁邊產生一個.deb的文件,或者如果包內有錯誤或遺失,則會列印錯誤。如果操作成功,就可以分發這個產生的 deb 包給他人了。

(6) 使用deb套件安裝到系統:可以看到,透過apt方式安裝我們製作的deb套件的時候,會自動安裝上依賴項:nano 軟體套件

# apt install ./mynano_1.0-1_amd64.deb
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
注意,选中 'mynano' 而非 './mynano_1.0-1_amd64.deb'
将会同时安装下列软件:
nano
建议安装:
hunspell
下列【新】软件包将被安装:
mynano nano
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 79 个软件包未被升级。
需要下载 280 kB/1,135 kB 的归档。
解压缩后会消耗 881 kB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 /root/my-nano-editor-src/mynano_1.0-1_amd64.deb mynano amd64 1.0.0 [855 kB]
获取:2 https://mirrors.ustc.edu.cn/ubuntu jammy/main amd64 nano amd64 6.2-1 [280 kB]
已下载 280 kB,耗时 1秒 (422 kB/s)
正在选中未选择的软件包 nano。
(正在读取数据库 ... 系统当前共安装有 231799 个文件和目录。)
准备解压 .../archives/nano_6.2-1_amd64.deb...
正在解压 nano (6.2-1) ...
正在选中未选择的软件包 mynano。
准备解压 .../mynano_1.0-1_amd64.deb...
正在解压 mynano (1.0.0) ...
正在设置 nano (6.2-1) ...
update-alternatives: 使用 /bin/nano 来在自动模式中提供 /usr/bin/editor (editor)
update-alternatives: 使用 /bin/nano 来在自动模式中提供 /usr/bin/pico (pico)
正在设置 mynano (1.0.0) ...
正在处理用于 install-info (6.8-4build1) 的触发器 ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
Scanning processes...
Scanning processor microcode...
Scanning linux images...
登入後複製

(7) 【非必須】卸載安裝的軟體 mynano:

# apt remove mynamo -y
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
下列软件包将被【卸载】:
mynano
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 79 个软件包未被升级。
解压缩后会消耗 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 231872 个文件和目录。)
正在卸载 mynano (1.0.0) ...
登入後複製

(8) 【非必須】查詢 mynano_0.1-1_amd64.deb 的依賴關係:dpkg -I ./mynano*deb

以上製作deb套件的方式,還有哪些可改進的地方:

以上是Linux製作deb套件如此簡單:Ubuntu的deb安裝套件檔案的內部組成分析與使用原理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

centos和ubuntu的區別 centos和ubuntu的區別 Apr 14, 2025 pm 09:09 PM

CentOS 和 Ubuntu 的關鍵差異在於:起源(CentOS 源自 Red Hat,面向企業;Ubuntu 源自 Debian,面向個人)、包管理(CentOS 使用 yum,注重穩定;Ubuntu 使用 apt,更新頻率高)、支持週期(CentOS 提供 10 年支持,Ubuntu 提供 5 年 LTS 支持)、社區支持(CentOS 側重穩定,Ubuntu 提供廣泛教程和文檔)、用途(CentOS 偏向服務器,Ubuntu 適用於服務器和桌面),其他差異包括安裝精簡度(CentOS 精

centos如何安裝 centos如何安裝 Apr 14, 2025 pm 09:03 PM

CentOS 安裝步驟:下載 ISO 映像並刻錄可引導媒體;啟動並選擇安裝源;選擇語言和鍵盤佈局;配置網絡;分區硬盤;設置系統時鐘;創建 root 用戶;選擇軟件包;開始安裝;安裝完成後重啟並從硬盤啟動。

Centos停止維護2024 Centos停止維護2024 Apr 14, 2025 pm 08:39 PM

CentOS將於2024年停止維護,原因是其上游發行版RHEL 8已停止維護。該停更將影響CentOS 8系統,使其無法繼續接收更新。用戶應規劃遷移,建議選項包括CentOS Stream、AlmaLinux和Rocky Linux,以保持系統安全和穩定。

Centos停止維護後的選擇 Centos停止維護後的選擇 Apr 14, 2025 pm 08:51 PM

CentOS 已停止維護,替代選擇包括:1. Rocky Linux(兼容性最佳);2. AlmaLinux(與 CentOS 兼容);3. Ubuntu Server(需要配置);4. Red Hat Enterprise Linux(商業版,付費許可);5. Oracle Linux(與 CentOS 和 RHEL 兼容)。在遷移時,考慮因素有:兼容性、可用性、支持、成本和社區支持。

docker原理詳解 docker原理詳解 Apr 14, 2025 pm 11:57 PM

Docker利用Linux內核特性,提供高效、隔離的應用運行環境。其工作原理如下:1. 鏡像作為只讀模板,包含運行應用所需的一切;2. 聯合文件系統(UnionFS)層疊多個文件系統,只存儲差異部分,節省空間並加快速度;3. 守護進程管理鏡像和容器,客戶端用於交互;4. Namespaces和cgroups實現容器隔離和資源限制;5. 多種網絡模式支持容器互聯。理解這些核心概念,才能更好地利用Docker。

docker desktop怎麼用 docker desktop怎麼用 Apr 15, 2025 am 11:45 AM

如何使用 Docker Desktop? Docker Desktop 是一款工具,用於在本地機器上運行 Docker 容器。其使用步驟包括:1. 安裝 Docker Desktop;2. 啟動 Docker Desktop;3. 創建 Docker 鏡像(使用 Dockerfile);4. 構建 Docker 鏡像(使用 docker build);5. 運行 Docker 容器(使用 docker run)。

centos停止維護後怎麼辦 centos停止維護後怎麼辦 Apr 14, 2025 pm 08:48 PM

CentOS 停止維護後,用戶可以採取以下措施應對:選擇兼容髮行版:如 AlmaLinux、Rocky Linux、CentOS Stream。遷移到商業發行版:如 Red Hat Enterprise Linux、Oracle Linux。升級到 CentOS 9 Stream:滾動發行版,提供最新技術。選擇其他 Linux 發行版:如 Ubuntu、Debian。評估容器、虛擬機或云平台等其他選項。

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

See all articles