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édente | ||
| technique:paquet_depot [2021/03/27 17:34] – francoisa | technique:paquet_depot [2024/04/02 15:08] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Linux : paquets et dépots ====== | + | **Cette page est obsolète. Veuillez accéder au contenu |
| - | + | ||
| - | 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 ===== | + | |
| - | + | ||
| - | [[https:// | + | |
| - | [[https:// | + | |
| - | [[https:// | + | |
| - | + | ||
| - | Mais comment les créer ? | + | |
| - | + | ||
| - | Il faut préparer ce paquet dans un dossier dédié qui contient : | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | + | ||
| - | Exemple si on veut copier des fichiers dans ''/ | + | |
| - | + | ||
| - | On aura un dossier " | + | |
| - | + | ||
| - | * '' | + | |
| - | * '' | + | |
| - | Le fichier control comprend les informations minimales sur ce paquet : nom, mainteneur (vous), | + | |
| - | + | ||
| - | '' | + | |
| - | < | + | |
| - | + | ||
| - | Package: icecat | + | |
| - | Version: 3.5.1 | + | |
| - | Architecture: | + | |
| - | Maintainer: Gnuzilla Project | + | |
| - | Section: web | + | |
| - | Priority: optional | + | |
| - | Installed-Size: | + | |
| - | Description: | + | |
| - | IceCat | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Cas d'un fichier '' | + | |
| - | + | ||
| - | < | + | |
| - | [DesktopEntry] | + | |
| - | Version=3.5.1 | + | |
| - | Encoding=UTF-8 | + | |
| - | Name=IceCat | + | |
| - | GenericName=IceCat | + | |
| - | Comment=Navigateur Web (Firefox totalement libre) | + | |
| - | Exec=icecat | + | |
| - | Icon=/ | + | |
| - | Terminal=false | + | |
| - | Type=Application | + | |
| - | Categories=Application; | + | |
| - | Name[fr_FR]=IceCat | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | On peut aussi créer des fichiers spécifiques dans DEBIAN qui s' | + | |
| - | + | ||
| - | ==== Création du paquet ==== | + | |
| - | + | ||
| - | < | + | |
| - | dpkg-deb –build nomdudossier # celui qui contient DEBIAN | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Cette commande créera le fichier nomdudossier.deb | + | |
| - | + | ||
| - | ==== Installation du paquet ==== | + | |
| - | + | ||
| - | Pour tester l' | + | |
| - | + | ||
| - | < | + | |
| - | sudo dpkg -i nomdudossier.deb | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Et testez, retestez, re-re-testez… | + | |
| - | + | ||
| - | ===== Création d'un dépot apt ===== | + | |
| - | + | ||
| - | [[https://doc.ubuntu-fr.org/tutoriel/comment_creer_depot|https:// | + | |
| - | + | ||
| - | Principe : on prépare un dossier en local, on le configure, on dépose ses paquets, on lance un script qui va créer l' | + | |
| - | + | ||
| - | ==== Installation reprepro ==== | + | |
| - | < | + | |
| - | + | ||
| - | sudo apt install reprepro | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | < | + | |
| - | mkdir apt | + | |
| - | mkdir -p ./ | + | |
| - | mkdir -p ./ | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Création du fichier ./'' | + | |
| - | + | ||
| - | < | + | |
| - | Origin: Votre Nom | + | |
| - | Label: Label de votre société (ou autre) | + | |
| - | Suite: stable | + | |
| - | Codename: bionic | + | |
| - | Version: 18.04 | + | |
| - | Architectures: | + | |
| - | Components: main restricted universe multiverse #(en fonction de vos besoin) | + | |
| - | Description: | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Mettre vos .deb dans le dossier incoming. A relancer en cas de mise à jour du dépot. | + | |
| - | + | ||
| - | < | + | |
| - | cd apt | + | |
| - | reprepro -Vb . includedeb (distribution) incoming/ | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ==== Tester localement ==== | + | |
| - | + | ||
| - | Tester avec un sources.list (déplacer le dossier dans /var/www par exemple si problème d' | + | |
| - | + | ||
| - | < | + | |
| - | deb file:/ | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Puis | + | |
| - | + | ||
| - | < | + | |
| - | sudo apt-get update | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ==== Signer son dépot ==== | + | |
| - | + | ||
| - | Signer le dépot avec une [[https:// | + | |
| - | < | + | |
| - | + | ||
| - | sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key XXXXX # ou XXXX est l' | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Rajouter dans '' | + | |
| - | + | ||
| - | < | + | |
| - | SignWith: XXXXXXXX # où XXXX est l' | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Puis dans apt/, lancer : | + | |
| - | + | ||
| - | < | + | |
| - | reprepro --ask-passphrase export | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | Et entrer le mot de passe de votre clef PGP | + | |
| - | + | ||
| - | ==== Envoyer son dépot à distance ==== | + | |
| - | + | ||
| - | Copier votre dossier distant dans un site accessible en http comme [[http://depot.cemea.org|http:// | + | |
| - | + | ||
| - | Et changer votre fichier local de sources.list : ''/ | + | |
| - | < | + | |
| - | + | ||
| - | deb http:// | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||
| - | ==== 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 | + | |
| - | + | ||
| - | </ | + | |
| - | + | ||