Création d’un fichier deb pour un projet et déploiement sur APT
Règles
- “
Saisie utilisateur
” - ‘
Elément cliquable/sélectionnable
’ Nom de fichier, dossier ou autre
- <Élément à="" remplacer=""> Élément>
lien, raccourci clavier et phrase de demande de saisie
commande, extrait code et extrait de fichier
Table des matières
Préparation du projet
Vous devez tous d’abord créer un fichier deb pour votre projet. Pour cela vous devez suivre les étapes de création d’un fichier deb.
Création d’un fichier deb
- Tutoriel source
https://www.iodigital.com/nl/history/intracto/creating-debianubuntu-deb-packages
-
Créer un dossier pour le projet
mkdir <nom_du_projet>
-
Créer un dossier
DEBIAN
dans le dossier du projetmkdir <nom_du_projet>/DEBIAN
-
Créer un fichier
control
dans le dossierDEBIAN
touch <nom_du_projet>/DEBIAN/control
-
Ouvrir le fichier
control
avec un éditeur de texteopen <nom_du_projet>/DEBIAN/control
-
Ajouter les informations suivantes dans le fichier
control
Package: <nom_du_projet> Version: <version_du_projet> Architecture: all <(ou amd64, arm64, i386, ...)> Depends: <dépendance_1>, <dépendance_2>, ... Maintainer: <nom_de_l\'auteur> Description: <description_du_projet>
- Copier les fichiers du projet dans le dossier du projet.
- Veillez à bien copier les fichiers dans le dossier du projet et non dans le dossier
DEBIAN
- Créer les dossiers nécessaires dans le dossier du projet, par exemple si vous voulez créer une commande
mvnl
il faut que le fichier de commande est pour nommvnl
et qu’il soit dans le dossier/usr/bin/
. Donc il faut créer le dossierusr/bin/
dans le dossier du projet et y mettre le fichiermvnl
. Ceci est du au fait que quand le fichier deb sera installer, les fichiers seront copier dans le système de fichier de l’ordinateur en respectant l’arborescence du dossier du projet.
- Veillez à bien copier les fichiers dans le dossier du projet et non dans le dossier
-
Exemple d’arborescence de dossier du projet
-
Créer le fichier deb
dpkg-deb --build <nom_du_projet>
Déploiement du projet
Création de pages de manuel - Linux
- Tutoriel source
https://www.cyberciti.biz/faq/linux-unix-creating-a-manpage/
- Installer le paquet
txt2man
- Créer un fichier texte ou markdown avec les informations de la page de manuel
- Exemple de fichier markdown avec Maven Lite
- Les titres de niveau 1 sont obligatoires. Ce sont des conventions des pages de manuel.
--- date: Janvier 2024 section: 1 title: Maven Lite --- # NOM mvnl - Gestionnaire de projet Java simple et léger inspiré du gestionnaire de projet `Maven`. # SYNOPSIS mvnl \[OPTION\]\... \[ARGUMENT\]\... # DESCRIPTION description du programme # EXEMPLES - `mvnl -s src -o bin -c -e UTF-8` \--\> compile le projet Java avec l\'encodage UTF-8 qui se trouve dans le dossier src et met les fichiers compilés dans le dossier bin. # COMPORTEMENT PAR DÉFAUT Par défaut, si aucune option n\'est spécifiée, la commande `mvnl` affiche la page d\'aide qui est affichée avec l\'option `-h` ou `--help`. Cette page d\'aide est différente et plus simple que la page de manuel qui est affichée avec la commande `man mvnl`. # OPTIONS ## Toutes les options -v , \--version Affiche la version et quitter. -h , \--help Affiche l\'aide et quitter. ## Les options obligatoires pour la compilation sont : -s , \--source Dossier racine du projet à compiler. -o , \--output Dossier de sortie des fichiers compilés. -c , \--compilation Compile le projet. ## Les options obligatoires pour le lancement sont : -m , \--main Classe principale à lancer. -l , \--launch Lance le projet. -cp , \--classpath Voir l\'option -cp dans la liste des options ci-dessus. ## Les options obligatoires pour la compilation et le lancement sont : -s , \--source Dossier racine du projet à compiler. -o , \--output Dossier de sortie des fichiers compilés. -m , \--main Classe principale à lancer. -cl , \--compile-launch Compile et lance le projet. (équivalent à -c -l) # CODES DE RETOUR 0 : Tout s\'est bien passé. 1 : Une erreur est survenue. # FICHIERS Maven Lite est constitué uniquement de 3 fichiers. - `'mvnl'`, le fichier principal qui se situe dans le dossier \'/usr/bin/\'. - `'mvnl.1.gz'`, le fichier d\'aide contenant la page de manuel française affichée avec la commande `man mvnl` qui se situe dans le dossier `'/usr/local/man/fr/man1/'`. - `'mvnl.1.gz'`, le fichier d\'aide contenant la page de manuel anglaise affichée avec la commande `man mvnl` qui se situe dans le dossier `'/usr/local/man/en/man1/'`. # BOGUES Bogues connu # AUTEUR Écrit par Robart Floris. # RAPPORT DE BOGUES Reporter les bogues par mail à l\'adresse \<email@gmail.com\>
- Exemple de fichier markdown avec Maven Lite
-
Convertissez votre fichier texte ou markdown en fichier Roff avec txt2man
txt2man -t <nom_du_fichier> > <nom_du_fichier>.1
- ou avec pandoc
pandoc ‐-from markdown ‐-to roff <nom_fichier_source> -o <nom_fichier_destination>.1
-
Il peut être nécessaire d’ajouter la ligne suivante au début votre fichier
.1
.TH "<Nom>" "<section>" "<Date>" "<Nom> Version <version format X.X.X>" "<type de l'application>"
-
Exemple avec Maven Lite
.TH "Maven Lite" "1" "Janvier 2024" "Maven Lite Version 1.2.0" "Commandes Utilisateur"
-
- Convertissez votre fichier
Roff
en fichier conpresser.1.gz
.- Attention, le nom du fichier
.1.gz
doit obligatoirement être le nom de la commande que vous avez créer. Dans mon cas le nom de la commande estmvnl
donc le nom du fichier.1.gz
doit êtremvnl.1.gz
gzip -k <nom_du_fichier>.1 > <nom_du_fichier>.1.gz
- Attention, le nom du fichier
-
Pour que la commande
man
fonctionne il faut placer le fichier.1.gz
dans le dossier/usr/local/man/<langue>/man1/
.sudo cp mvnl.1.gz /usr/local/man/fr/man1/mvnl.1.gz
Licence
doc_create_deb_package.md
Copyright (C) 2024 Floris Robart
Authors: Floris Robart
This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.