Apprenez à packager vous-même vos applications sous Linux

Objectifs et cible

Objectifs du cours

L’une des grandes forces des systèmes Linux repose sur le packaging logiciel. Il facilite l’installation, l’utilisation, la maintenance et la mise à jour des applications logicielles.Les distributions majeures proposent fréquemment à leurs futurs packagers un système de mentoring pour appréhender l’ensemble des aspects techniques et organisationnels nécessaires pour intégrer les équipes officielles.

La formation au packaging  propose d’aborder les fondamentaux et notions plus avancées du packaging qu’il soit orienté deb ou rpm.

Public ciblé

La formation s’adresse à un public débutant qui souhaite comprendre les logiques du packaging logiciel sous Linux, et mettre en application.

Détails pratiques

Détails pratiques

  • Durée : 2 jours
  • Niveau : débutant
  • Objectif : les participants seront capables de modifier des paquets logiciels existants, produire de nouveaux paquets et disposer des éléments pour mettre en place une politique de packaging au sein de l’entreprise
  • Prix : 1 300€ HT

Méthode

La méthode

La formation alternera apports théoriques et mise en applications de chaque notion abordée. La formation comprendra également un cas pratique complet qui s’appuiera sur un logiciel proposé par le participant.

hupstream propose une infrastructure de build de packages permettra l’exécution des projets d’école proposés lors des cas pratiques. Les participants pourront également soumettre des cas de figure concrets, des problématiques.

Contenu

Packaging RPM

1Prérequis et convention

  • La norme FHS : définir les conventions liées à l’arborescence
  • Conventions de nommage des rpm
  • L’importance d’une architecture de build définie
  • La libification ou packaging des librairies
  • Importance des Makefile dans le packaging
  • Les principales différences des distributions
  • Les différents types de packaging : sources et binaires

2Les grandes sections du fichier .spec

  • en-têtes : revue des tags utilisables
  • La section prep
  • La section build
  • La section install
  • La section files : impact sur les mises à jour et la désinstallation
  • La section changelog : de l’importance de la documentation
  • Scripts de pre et post-installation

3 Build du RPM

  • Les commandes à disposition
  • Optimisation du build
  • Décoder les erreurs : les sources d’information

4Gestion avancée des paquets

  • Paquets et sous-paquets
  • Renommage d’un paquet

5 Aller plus loin : les macros

  • Les macros génériques
  • Les macros prédéfinies pour la distribution
  • Ajouter ses propres macros
  • La section check

6Utiliser des options de build

  • Options de build conditionnelles
  • Reconstruire un paquet en utilisant une option spécifique
  • Ajouter des options dans un fichier spec
  • Outre-passer la gestion automatique des dépendances

7Gestion avancée des mises à jour

  • Impact sur la configuration et les données
  • Gestion du retour arrière
  • Gestion du retour arrière
  • Installation simultanée de plusieurs versions

8Options avancées de la commande RPM

  • Gestion des requêtes d’information
  • Option d’installation

9Packaging et sécurité

  • Signature des paquets
  • Vérification de la signature d’un paquet
  • Ajouter des options dans un fichier spec
  • Vérification de l’intégrité des fichiers installés

Packaging debian

1Prérequis et convention

  • La norme FHS : définir les conventions liées à l’arborescence
  • Les formats de paquet deb :
  • paquet source au format 1.0 (natif et non natif)
  • paquet source au format 1.0 (natif et non natif avec quilt)
  • pré-versions
  • Conventions de nommage et versioning de paquet
  • Préparation de l’environement de build

2Le packaging des librairies
3Le répertoire debian

  • Control
  • Copyright
  • Chantelog
  • Compat
  • Source/format
  • .*install
  • Rules (cibles, valeurs par défaut, personnalisation)
  • Source et patches
  • Autres fichiers du répertoire debian

4Construction du paquet

  • Création d’un nouveau paquet avec dh_make
  • Reconstruction complète avec dpkg-buildpackage
  • Automatiser avec la commande debuild
  • Construire proprement ses paquets avec pbuilder/cowbuilder
  • Tester / debugger son build

5Simplifier le packaging avec dh ou cdbs

  • La commande dh
  • Common Debian Build System

6Vérifier la construction d’un package debian

  • Les scripts devscripts
  • Outils de vérification de paquet : lintian
  • Tester l’installation, l’upgrade et la désinstallation : piu-part
  • Check-list du packager
  • Boîte à outils du packager : debdiff, interdiff

7Modifier le code source

  • Configurer et utiliser quilt

8Utilisation de git pour gérer ses paquets source

  • Introduction à git-buildpackage
  • Créer un dépôt git à partir du paquet source avec git-import-dsc
  • Importer un nouveau fichier .orig avec git-import-orig
  • Créer le paquet avec git-buildpackage

9Mettre en place son propre dépôt APT

  • Structure du dépôt
  • Un outil simple : apt-ftarchives
  • Importer un nouveau fichier .orig avec git-import-orig
  • Gestion avancée du dépôt avec des uploads avec reprepro et dupload

Dates

Nos prochaines dates de formation

Packaging debian

  • 1 et 2 février 2018, Paris
  • 24 et 25 mai 2018, Paris
  • 20 et 21 septembre 2018, Paris
  • 26 et 27 novembre 2018, Paris

Packaging RPM

  • 1 et 2 février 2018, Paris
  • 24 et 25 mai 2018, Paris
  • 10 et 11 septembre 2018, Paris
  • 26 et 27 novembre 2018, Paris

Demander un devis

Votre nom (obligatoire)

Votre adresse de messagerie (obligatoire)














Votre formateur


Pour cela, nous vous proposons une formation s’appuyant sur :

  • une connaissance avancée du packaging rpm acquise au sein même des équipes officielles des distributions
  • une expérience des projets open source de plus de 10 ans

Nos formateurs sont expérimentés sur les techniques de packaging ainsi que dans la formation. Ils ont plusieurs années d’expérience chez un éditeur de logiciels libres.