Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
technique:paquet_depot [2020/04/05 21:26] – francoisa | technique:paquet_depot [2021/04/20 23:35] – francoisa | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Linux : paquets et dépots ====== | ====== Linux : paquets et dépots ====== | ||
- | Plutôt que de copier des fichiers avec des scripts, il peut être plus utilie | + | Plutôt que de copier des fichiers avec des scripts, il peut être plus utile de proposer des paquets deb (pour les Linux basés sur Debian, Ubuntu, Mint…). |
===== Version simple ===== | ===== Version simple ===== | ||
Ligne 16: | Ligne 16: | ||
* une arborescence qui reproduit l' | * une arborescence qui reproduit l' | ||
- | Exemple si on veut copier des fichiers dans / | + | Exemple si on veut copier des fichiers dans '' |
On aura un dossier " | On aura un dossier " | ||
* '' | * '' | ||
- | * usr/ | + | * '' |
Le fichier control comprend les informations minimales sur ce paquet : nom, mainteneur (vous), | Le fichier control comprend les informations minimales sur ce paquet : nom, mainteneur (vous), | ||
Ligne 58: | Ligne 57: | ||
</ | </ | ||
- | On peutaussi | + | On peut aussi créer des fichiers spécifiques dans DEBIAN |
==== Création du paquet ==== | ==== Création du paquet ==== | ||
- | dpkg-deb –build nomdudossier # celui qui contient DEBIAN) | + | < |
+ | dpkg-deb –build nomdudossier # celui qui contient DEBIAN | ||
+ | |||
+ | </ | ||
Cette commande créera le fichier nomdudossier.deb | Cette commande créera le fichier nomdudossier.deb | ||
Ligne 70: | Ligne 72: | ||
Pour tester l' | Pour tester l' | ||
+ | < | ||
sudo dpkg -i nomdudossier.deb | sudo dpkg -i nomdudossier.deb | ||
+ | |||
+ | </ | ||
Et testez, retestez, re-re-testez… | Et testez, retestez, re-re-testez… | ||
Ligne 81: | Ligne 86: | ||
==== Installation reprepro ==== | ==== Installation reprepro ==== | ||
+ | < | ||
sudo apt install reprepro | sudo apt install reprepro | ||
- | < | ||
+ | </ | ||
+ | |||
+ | < | ||
mkdir apt | mkdir apt | ||
mkdir -p ./apt/conf | mkdir -p ./apt/conf | ||
Ligne 97: | Ligne 105: | ||
Label: Label de votre société (ou autre) | Label: Label de votre société (ou autre) | ||
Suite: stable | Suite: stable | ||
- | Codename: | + | Codename: |
- | Version: | + | Version: |
Architectures: | Architectures: | ||
Components: main restricted universe multiverse #(en fonction de vos besoin) | Components: main restricted universe multiverse #(en fonction de vos besoin) | ||
Ligne 105: | Ligne 113: | ||
</ | </ | ||
- | Mettre vos .deb dans le dossier incoming. | + | Mettre vos .deb dans le dossier incoming. A relancer en cas de mise à jour du dépot. |
< | < | ||
Ligne 156: | Ligne 164: | ||
==== Envoyer son dépot à distance ==== | ==== Envoyer son dépot à distance ==== | ||
- | Copier votre dossier distant dans un site accessible en http comme [[https:// | + | Copier votre dossier distant dans un site accessible en http comme [[http:// |
Et changer votre fichier local de sources.list : ''/ | Et changer votre fichier local de sources.list : ''/ | ||
< | < | ||
- | deb http:// | + | deb [allow-insecure=yes] |
+ | # allow-insecure si le dépot n'est pas signé | ||
</ | </ | ||
+ | |||
+ | ==== TODO ==== | ||
+ | |||
+ | - Gérer d' | ||
+ | |||
+ | - Ajouter des paquets .deb | ||
+ | |||
+ | - Affiner le lieu de stockage des paquets selon les options universe multiverse contrib… Identifier les paquets pour amd64, i386. | ||
+ | |||
+ | ===== Astuces - debug ===== | ||
+ | |||
+ | Dans le cas particulier où un paquet serait bloqué en cours d' | ||
+ | |||
+ | < | ||
+ | mv / | ||
+ | dpkg --remove --force-remove-reinstreq PAQUET | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Clef GPG de dépot expiré ===== | ||
+ | |||
+ | Cas où un dépot à été ajouté et sa clef a expiré. | ||
+ | |||
+ | Exemple : | ||
+ | |||
+ | < | ||
+ | Err :6 https:// | ||
+ | Les signatures suivantes ne sont pas valables : EXPKEYSIG B188E2B695BD4743 DEB.SURY.ORG Automatic Signing Key < | ||
+ | |||
+ | </ | ||
+ | |||
+ | apt-key list sury donne : | ||
+ | |||
+ | < | ||
+ | pub | ||
+ | 1505 8500 A023 5D97 F5D1 0063 B188 E2B6 95BD 4743 | ||
+ | uid [ expirée ] DEB.SURY.ORG Automatic Signing Key < | ||
+ | |||
+ | </ | ||
+ | |||
+ | < | ||
+ | L' | ||
+ | |||
+ | </ | ||
+ | |||
+ | Donc on récupère la nouvelle clef à partir des serveurs de clef avec cet identifiant : | ||
+ | |||
+ | < | ||
+ | sudo apt-key adv --keyserver keys.gnupg.net --recv-keys B188E2B695BD4743 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Et c'est tout bon ! | ||
+ | |||
+ | apt-key list sury renvoie : | ||
+ | |||
+ | < | ||
+ | pub | ||
+ | 1505 8500 A023 5D97 F5D1 0063 B188 E2B6 95BD 4743 | ||
+ | uid [ unknown] DEB.SURY.ORG Automatic Signing Key < | ||
+ | sub | ||
+ | |||
+ | </ | ||
+ | |||