technique:paquet_depot

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
technique:paquet_depot [2020/11/27 11:58] francoisatechnique: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èteVeuillez accéder au contenu à son nouvel emplacement : [[https://bibliotech.cemea.org/books/outils-technique/page/paquet-depot|paquet-depot]]**
- +
-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://www.it-connect.fr/creer-un-paquet-debian-deb/|https://www.it-connect.fr/creer-un-paquet-debian-deb/]]\\ +
-[[https://doc.ubuntu-fr.org/tutoriel/creer_un_paquet|https://doc.ubuntu-fr.org/tutoriel/creer_un_paquet]]\\ +
-[[https://doc.ubuntu-fr.org/tutoriel/creation_deb|https://doc.ubuntu-fr.org/tutoriel/creation_deb]] +
- +
-Mais comment les créer ? +
- +
-Il faut préparer ce paquet dans un dossier dédié qui contient : +
- +
-  Un dossier "DEBIAN" avec des fichiers spécifiques +
-  une arborescence qui reproduit l'arborescence avec les chiers à ajouter dedans. +
- +
-Exemple si on veut copier des fichiers dans ''/usr/share/backgrounds/cemea'' +
- +
-On aura un dossier "fondsecran" qui contient : +
- +
-  * ''DEBIAN/control''  (et d'autres plus ou moins utiles changelog, compat, copyright, rules, dir…) +
-  * ''usr/share/backgrounds/cemea/''  qui contient les fichiers image +
-Le fichier control comprend les informations minimales sur ce paquet : nom, mainteneur (vous),catégorie, description, dépendances, version… +
- +
-''DEBIAN/control'' +
-<code> +
- +
-Package: icecat +
-Version: 3.5.1 +
-Architecture: i386 +
-Maintainer: Gnuzilla Project +
-Section: web +
-Priority: optional +
-Installed-Size: 29700 +
-Description: Decouvrez une version totalement libre de firefox +
-IceCat est un fork totalement libre de Firefox, maintenu par le projet GnuZilla. +
- +
-</code> +
- +
-Cas d'un fichier ''monprogramme.desktop''  pour avoir une icone dans les menus (à placer dans usr/share/applications/+
- +
-<code> +
-[DesktopEntry] +
-Version=3.5.1 +
-Encoding=UTF-8 +
-Name=IceCat +
-GenericName=IceCat +
-Comment=Navigateur Web (Firefox totalement libre) +
-Exec=icecat +
-Icon=/opt/icecat/icons/mozicon128.png +
-Terminal=false +
-Type=Application +
-Categories=Application;Network; +
-Name[fr_FR]=IceCat +
- +
-</code> +
- +
-On peut aussi créer des fichiers spécifiques dans DEBIAN qui s'exécuterent avant, ou après l'installation ou la désinstallation (respectivement preinst, postin, prerm, postrm). Ces fichiers sont des fichiers bash avec des commandes classiques qui seront exécutées en tant que root. +
- +
-==== Création du paquet ==== +
- +
-<code> +
-dpkg-deb –build nomdudossier # celui qui contient DEBIAN +
- +
-</code> +
- +
-Cette commande créera le fichier nomdudossier.deb +
- +
-==== Installation du paquet ==== +
- +
-Pour tester l'installation du paquet : +
- +
-<code> +
-sudo dpkg -i nomdudossier.deb +
- +
-</code> +
- +
-Et testez, retestez, re-re-testez… +
- +
-===== Création d'un dépot apt ===== +
- +
-[[https://doc.ubuntu-fr.org/tutoriel/comment_creer_depot|https://doc.ubuntu-fr.org/tutoriel/comment_creer_depot]] (avec reprepro) +
- +
-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'arborescence qui va bien. On signe son dépot et on envoie sa cleg sur les serveurs d'Ubuntu. Puis on coper son disser local sur un dossier distant accessible par le web. Et on ajouter le dépot dans ses dépots perso et on lance une mise à jour avec installation des paquets. +
- +
-==== Installation reprepro ==== +
-<code> +
- +
-sudo apt install reprepro +
- +
-</code> +
- +
-<code> +
-mkdir apt +
-mkdir -p ./apt/conf +
-mkdir -p ./apt/incoming +
- +
-</code> +
- +
-Création du fichier ./''apt/conf/distributions'' +
- +
-<code> +
-Origin: Votre Nom +
-Label: Label de votre société (ou autre) +
-Suite: stable +
-Codename: bionic +
-Version: 18.04 +
-Architectures: i386 amd64 source #(en fonction de vos besoin) +
-Components: main restricted universe multiverse #(en fonction de vos besoin) +
-Description: Votre Description +
- +
-</code> +
- +
-Mettre vos .deb dans le dossier incoming. A relancer en cas de mise à jour du dépot. +
- +
-<code> +
-cd apt +
-reprepro -Vb . includedeb (distribution) incoming/*.deb +
- +
-</code> +
- +
-==== Tester localement ==== +
- +
-Tester avec un sources.list (déplacer le dossier dans /var/www par exemple si problème d'accès par _apt): +
- +
-<code> +
-deb file:/lieu_de_mon_dossier/apt stable main contrib non-free +
- +
-</code> +
- +
-Puis +
- +
-<code> +
-sudo apt-get update +
- +
-</code> +
- +
-==== Signer son dépot ==== +
- +
-Signer le dépot avec une [[https://doc.ubuntu-fr.org/gnupg|clef GPG]] à préparer. Puis à publier sur les serveurs de clef d'Ubuntu : +
-<code> +
- +
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key XXXXX # ou XXXX est l'identifiant (court) de votre clef +
- +
-</code> +
- +
-Rajouter dans ''./apt/conf/distributions'' +
- +
-<code> +
-SignWith: XXXXXXXX # où XXXX est l'identifiant (court) de votre clef +
- +
-</code> +
- +
-Puis dans apt/, lancer : +
- +
-<code> +
-reprepro --ask-passphrase export +
- +
-</code> +
- +
-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://depot.cemea.org]] +
- +
-Et changer votre fichier local de sources.list : ''/etc/apt/sources.list.d/depotcemea.list'' +
-<code> +
- +
-deb http://depot.cemea.org/ bionic main # à affiner pour les options universe multiverse contrib... +
- +
-</code> +
- +
-==== TODO ==== +
- +
-- Gérer d'autres dépots +
- +
-- 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'installation : +
- +
-<code> +
-mv /var/lib/dpkg/info/PAQUET./tmp/ +
-dpkg --remove --force-remove-reinstreq PAQUET +
- +
-</code> +
- +
  • technique/paquet_depot.1606474697.txt.gz
  • Dernière modification : 2020/11/27 11:58
  • de francoisa