Le fichier Deb est un fichier d'archive utilisé pour distribuer et installer Linux Debian et ses programmes de distribution dérivés, contenant généralement des données d'application. Ils sont utiles pour gérer les dépendances, l’intégration du bureau et exécuter des scripts de pré et post-installation. Un autre format de package similaire au format Deb est le fichier RPM couramment utilisé dans les distributions de la série Fedora.
Cet article montre comment créer un package deb simple à travers des exemples, explique le rôle de chaque fichier dans le package deb et comment le prendre en compte et le maintenir après l'installation.
deb est un format d'archive AR Unix courant qui contient des fichiers d'application et d'autres utilitaires. Le composant clé est le fichier de contrôle (control), qui contient des informations importantes sur le package deb et le programme d'installation.
_-_.deb
Supposons que vous souhaitiez publier un programme appelé mynano, version 1.0, conçu pour les processeurs 64 bits (AMD64). Le nom de votre fichier deb ressemblera à mynano_1.0-0_amd64.deb
Nous sommes prêts à générer le package. Veuillez vous assurer que l'outil dpkg-deb (fourni par le package dpkg) est installé sur votre système. Le package deb final sera généré ultérieurement à l’aide de dpkg-deb.
(1) Créez un répertoire de travail pour stocker les fichiers du package et nommez-les selon la convention de dénomination précédente.
mkdir mynano_1.0-1_amd64/
(2) Créez la structure interne et placez les fichiers du programme là où ils doivent être installés sur le système cible. Supposons que vous souhaitiez installer l'exécutable sur : /usr/bin/
Créez d'abord le répertoire :
mkdir -p mynano_1.0-1_amd64/usr/bin/
L'indicateur -p de la commande mkdir créera des répertoires imbriqués et les créera automatiquement si l'un d'entre eux n'existe pas. Copiez ensuite le fichier exécutable dedans :
# 假设你开发的程序可执行文件为 ~/YourProjects/mynano/src/targets/release/mynano cp ~/YourProjects/mynano/src/targets/release/mynanomynano_1.0-1_amd64/usr/bin/
(3) Créez le contrôle de fichier. Ce fichier se trouve dans le répertoire DEBIAN (notez que le nom du répertoire est en majuscules)
Créez d'abord le dossier : DEBIAN
mkdir mynano_1.0-1_amd64/DEBIAN
Créez ensuite un fichier vide : control
touch mynano_1.0-1_amd64/DEBIAN/control
Remplissez le contenu du fichier de contrôle :
Package: mynano Version: 1.0 Architecture: amd64 Maintainer: linuxlibs Description: 基于nano的自定义编辑器 Depends: nano (>= 5.0)
Parmi eux :
Le fichier peut contenir d'autres champs utiles, tels que Depends pointant vers la liste des dépendances du package deb. Ensuite, si vous utilisez la commande apt pour installer le package deb, la version nano>=5.0 du package logiciel sera installée en premier, puis mynano sera installé.
(5) La dernière étape : construisez le package deb. Appelez dpkg-deb comme suit :
dpkg-deb --build --root-owner-group
Dans notre exemple :
dpkg-deb --build --root-owner-group
L'indicateur –root-owner-group ici fait que tout le contenu du package deb appartient à l'utilisateur root, ce qui est l'approche standard. S'il n'y a pas un tel indicateur, le propriétaire de tous les fichiers et dossiers est votre utilisateur actuel. Cependant, étant donné que le système sur lequel le package deb sera installé n'a pas nécessairement un compte portant le même nom que le vôtre, utilisez –root-owner. -groupe plus raisonnable.
La commande ci-dessus générera un fichier .deb à côté du répertoire de travail ou imprimera des erreurs s'il y a des erreurs ou des éléments manquants dans le package. Si l'opération réussit, vous pouvez distribuer le package deb généré à d'autres.
(6) Utilisez le package deb pour l'installer dans le système : vous pouvez voir que lors de l'installation du package deb que nous avons créé via la méthode apt, la dépendance sera automatiquement installée : le package logiciel 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) [Facultatif] Désinstallez le logiciel installé mynano :
# apt remove mynamo -y 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 下列软件包将被【卸载】: mynano 升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 79 个软件包未被升级。 解压缩后会消耗 0 B 的额外空间。 您希望继续执行吗? [Y/n] y (正在读取数据库 ... 系统当前共安装有 231872 个文件和目录。) 正在卸载 mynano (1.0.0) ...
(8) [Facultatif] Vérifiez les dépendances de mynano_0.1-1_amd64.deb : dpkg -I ./mynano*deb
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!