first commit

This commit is contained in:
Grégory Lebreton 2026-02-03 13:22:20 +01:00
commit d6e1fa6920
5 changed files with 243 additions and 0 deletions

218
README.md Normal file
View File

@ -0,0 +1,218 @@
# 📦 Créer un paquet Debian (.deb)
Ce document explique **pas à pas** comment créer un paquet Debian propre, avec :
* larborescence correcte
* les dépendances
* les scripts dinstallation
* la construction du fichier `.deb`
Ce guide sadresse aux systèmes **Debian / Ubuntu et dérivés**.
---
## 🧱 1. Prérequis
Outils nécessaires :
```bash
sudo apt install build-essential dpkg-dev lintian
```
Optionnel mais recommandé :
```bash
sudo apt install fakeroot
```
---
## 📁 2. Arborescence minimale dun paquet Debian
Un paquet Debian est **une simple arborescence de fichiers**.
Exemple pour un paquet `mon-paquet` version `1.0` :
```text
mon-paquet-1.0/
├── DEBIAN
│ └── control
└── usr
└── bin
└── mon-paquet
```
### Création des dossiers
```bash
mkdir -p mon-paquet-1.0/DEBIAN
mkdir -p mon-paquet-1.0/usr/bin
```
---
## 📄 3. Le fichier DEBIAN/control
Le fichier `control` est **obligatoire**.
```bash
nano mon-paquet-1.0/DEBIAN/control
```
### Exemple complet
```text
Package: mon-paquet
Version: 1.0
Section: utils
Priority: optional
Architecture: amd64
Maintainer: Le Garage Numérique <contact@legaragenumerique.fr>
Depends: bash (>= 5.0), curl
Description: Exemple de paquet Debian
Description longue sur plusieurs lignes.
Chaque ligne doit commencer par un espace.
```
### Champs importants
| Champ | Description |
| ------------ | ---------------------------- |
| Package | Nom du paquet |
| Version | Version du paquet |
| Architecture | `amd64`, `all`, `arm64`, etc |
| Depends | Dépendances APT |
| Description | Description courte + longue |
---
## 🔗 4. Gérer les dépendances
Les dépendances sont listées dans `Depends:`.
### Syntaxe
```text
Depends: paquet1, paquet2 (>= 1.2), paquet3 | alternative
```
### Exemples
```text
Depends: python3, python3-requests
Depends: systemd | sysvinit
```
APT installera automatiquement les dépendances lors de linstallation.
---
## 🧩 5. Arborescence complète recommandée
```text
mon-paquet-1.0/
├── DEBIAN
│ ├── control
│ ├── postinst
│ ├── prerm
│ └── postrm
├── usr
│ ├── bin
│ │ └── mon-paquet
│ └── share
│ ├── doc
│ │ └── mon-paquet
│ │ └── README.md
│ └── applications
│ └── mon-paquet.desktop
└── etc
└── mon-paquet
└── config.conf
```
### Création rapide
```bash
mkdir -p mon-paquet-1.0/{DEBIAN,usr/bin,etc/mon-paquet}
mkdir -p mon-paquet-1.0/usr/share/{doc/mon-paquet,applications}
```
---
## ⚙️ 6. Scripts Debian (postinst, prerm, postrm)
Ces scripts sont exécutés automatiquement.
### postinst (après installation)
```bash
#!/bin/sh
set -e
echo "Installation terminée"
```
### prerm (avant suppression)
```bash
#!/bin/sh
set -e
echo "Suppression du paquet"
```
### Permissions obligatoires
```bash
chmod 755 mon-paquet-1.0/DEBIAN/postinst
chmod 755 mon-paquet-1.0/DEBIAN/prerm
chmod 755 mon-paquet-1.0/DEBIAN/postrm
```
---
## 📦 7. Construire le paquet `.deb`
```bash
dpkg-deb --build --root-owner-group mon-paquet-1.0
```
Résultat :
```text
mon-paquet-1.0.deb
```
---
## 🧪 8. Tester le paquet
### Installation
```bash
sudo apt install ./mon-paquet-1.0.deb
```
### Vérification
```bash
dpkg -l mon-paquet
```
### Analyse qualité
```bash
lintian mon-paquet-1.0.deb
```
---
## 📚 9. Bonnes pratiques
* ✔ Respecter le FHS (`/usr`, `/etc`, `/var`)
* ❌ Ne jamais utiliser `/usr/local`
* ✔ Utiliser `Architecture: all` pour scripts
* ✔ Versionner correctement
* ✔ Tester sur une VM propre
---
✉️ Maintenu par **Le Garage Numérique**

7
paquet/DEBIAN/control Normal file
View File

@ -0,0 +1,7 @@
Package: geo
Version: 1.2
Section: base
Priority: optional
Architecture: all
Maintainer: Greg <contact@legaragenumerique.fr>
Description: Geographical Adventures installation pour Linux.

5
paquet/DEBIAN/postinst Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
chmod +x /opt/Geographical-Adventures/Geographical-Adventures.x86_64
echo "installation Terminée"
echo "Tu peux désormais jouer à Geographical Adventures"

5
paquet/DEBIAN/prerm Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
rm -rf '/opt/Geographical-Adventures/unity.lock'
rm -rf /usr/share/applications/geographical-adventures.desktop
echo "Application désinstallée avec succès"

View File

@ -0,0 +1,8 @@
[Desktop Entry]
Name=Geographical Adventures
Comment=Une application pour apprendre la géographie
Exec=/opt/Geographical-Adventures/Geographical-Adventures.x86_64
Icon=/opt/Geographical-Adventures/Geographical-Adventures_Data/Resources/UnityPlayer.png
Terminal=false
Type=Application
Categories=Games;