Deb-Datei ist eine Archivdatei, die zum Verteilen und Installieren von Linux Debian und seinen abgeleiteten Verteilungsprogrammen verwendet wird und normalerweise Anwendungsdaten enthält. Sie sind praktisch für den Umgang mit Abhängigkeiten, die Desktop-Integration und die Ausführung von Skripten vor und nach der Installation. Ein weiteres Paketformat, das dem Deb-Format ähnelt, ist die RPM-Datei, die häufig in Distributionen der Fedora-Serie verwendet wird.
Dieser Artikel zeigt anhand von Beispielen, wie man ein einfaches Deb-Paket erstellt, erklärt die Rolle jeder Datei im Deb-Paket und wie sie nach der Installation wirksam wird und aufrechterhalten wird.
deb ist ein gängiges Unix-AR-Archivformat, das Anwendungs- und andere Dienstprogrammdateien enthält. Die Schlüsselkomponente ist die Steuerdatei (Control), die wichtige Informationen über das Deb-Paket und den Installer enthält.
_-_.deb
Angenommen, Sie möchten ein Programm namens mynano, Version 1.0, veröffentlichen, das für 64-Bit-Prozessoren (AMD64) entwickelt wurde. Der Name Ihrer Deb-Datei lautet etwa mynano_1.0-0_amd64.deb
Wir sind bereit, das Paket zu generieren. Bitte stellen Sie sicher, dass auf Ihrem System das dpkg-deb-Tool (im Paket dpkg bereitgestellt) installiert ist. Das endgültige Deb-Paket wird später mit dpkg-deb generiert.
(1) Erstellen Sie ein Arbeitsverzeichnis zum Speichern der Paketdateien und benennen Sie sie gemäß der vorherigen Namenskonvention.
mkdir mynano_1.0-1_amd64/
(2) Erstellen Sie die interne Struktur und platzieren Sie die Programmdateien dort, wo sie auf dem Zielsystem installiert werden sollen. Angenommen, Sie möchten die ausführbare Datei unter /usr/bin/
installierenErstellen Sie zunächst das Verzeichnis:
mkdir -p mynano_1.0-1_amd64/usr/bin/
Das Flag -p des Befehls mkdir erstellt verschachtelte Verzeichnisse und erstellt sie automatisch, wenn eines davon nicht vorhanden ist. Kopieren Sie dann die ausführbare Datei hinein:
# 假设你开发的程序可执行文件为 ~/YourProjects/mynano/src/targets/release/mynano cp ~/YourProjects/mynano/src/targets/release/mynanomynano_1.0-1_amd64/usr/bin/
(3) Erstellen Sie die Dateisteuerung. Diese Datei befindet sich im DEBIAN-Verzeichnis (beachten Sie, dass der Verzeichnisname in Großbuchstaben geschrieben ist)
Erstellen Sie zuerst den Ordner: DEBIAN
mkdir mynano_1.0-1_amd64/DEBIAN
Dann erstellen Sie eine leere Datei: control
touch mynano_1.0-1_amd64/DEBIAN/control
Füllen Sie den Inhalt der Steuerdatei aus:
Package: mynano Version: 1.0 Architecture: amd64 Maintainer: linuxlibs Description: 基于nano的自定义编辑器 Depends: nano (>= 5.0)
Unter ihnen:
Die Datei kann andere nützliche Felder enthalten, z. B. „Depends“, das auf die Abhängigkeitsliste des Deb-Pakets hinweist. Wenn Sie dann den Befehl apt verwenden, um das Deb-Paket zu installieren, wird zuerst die nano>=5.0-Version des Softwarepakets installiert und dann wird mynano installiert.
(5) Der letzte Schritt: Erstellen Sie das Deb-Paket wie folgt:
dpkg-deb --build --root-owner-group
In unserem Beispiel:
dpkg-deb --build --root-owner-group
Das Flag –root-owner-group macht hier alle Deb-Paketinhalte zum Eigentum des Root-Benutzers, was der Standardansatz ist. Wenn kein solches Flag vorhanden ist, ist der Eigentümer aller Dateien und Ordner Ihr aktueller Benutzer. Da das System, auf dem das Deb-Paket installiert wird, jedoch nicht unbedingt über ein Konto mit demselben Namen wie Ihres verfügt, verwenden Sie –root-owner- Gruppe Vernünftiger.
Der obige Befehl generiert eine .deb-Datei neben dem Arbeitsverzeichnis oder gibt Fehler aus, wenn im Paket Fehler vorhanden sind oder fehlen. Wenn der Vorgang erfolgreich ist, können Sie das generierte Deb-Paket an andere verteilen.
(6) Mit dem Deb-Paket im System installieren: Sie können sehen, dass bei der Installation des Deb-Pakets, das wir mit der apt-Methode erstellt haben, die Abhängigkeit automatisch installiert wird: Nano-Softwarepaket
# 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) [Optional] Deinstallieren Sie die installierte Software mynano:
# apt remove mynamo -y 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 下列软件包将被【卸载】: mynano 升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 79 个软件包未被升级。 解压缩后会消耗 0 B 的额外空间。 您希望继续执行吗? [Y/n] y (正在读取数据库 ... 系统当前共安装有 231872 个文件和目录。) 正在卸载 mynano (1.0.0) ...
(8) [Optional] Überprüfen Sie die Abhängigkeiten von mynano_0.1-1_amd64.deb: dpkg -I ./mynano*deb
Das obige ist der detaillierte Inhalt vonEs ist so einfach, ein Deb-Paket unter Linux zu erstellen: Analyse der internen Zusammensetzung und Nutzungsprinzipien der Deb-Installationspaketdatei von Ubuntu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!