packaging: le premier pas la distribution dÕun logiciel€¦ · packaging et d veloppement...

11
Packaging: le premier pas à la distribution d’un logiciel Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) et Synchrotron Soleil (St Aubin)

Upload: others

Post on 02-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Packaging: le premier pas à la distribution d’un

logiciel

Konrad HINSEN

Centre de Biophysique Moléculaire (Orléans)et

Synchrotron Soleil (St Aubin)

Page 2: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Le packaging: c’est quoi?

Préparation d’un logiciel pour la distribution

Résultat: un seul fichier qui permet l’installation idéalement sur n’importe quel ordinateur

Définit la première impression qu’aura l’utilisateur !

Page 3: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Questions à se poser avant de commencer

Pour quelles plateformes veux-je packager mon logiciel?

Que veux-je proposer? Le code source? Des exécutables? La documentation?

Quelles sont les dépendances externes?

Quels outils sont les mieux adaptés à mes besoins?

Page 4: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

L’utilisateur...

cherche d’abord un fichier README et/ou un fichier INSTALL pour avoir des instructions

aime bien suivre des procédures qu’il connaît déjà

apprécie une liste de dépendances courte

Page 5: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Packaging et développement

Idéalement: deux aspects d’un même processus

Utilisez pour le développement

la même structure de fichiers

les mêmes outils de gestion (compilation etc.)

que pour l’installation chez l’utilisateur.

Il n’y a pas de distinction nette entre outils de développement et outils de packaging.

Page 6: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Etapes du packaging

1.Mettre en place une procédure d’installation facile et universelle.

2.Préparer la documentation du logiciel.

3.Documenter l’installation, sans oublier une liste des dépendances.

4.Créer un fichier archive pour la distribution.

Les outils de packaging couvrent surtout les points 1 et 4.

Page 7: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Outils de packagingPlateforme classique: C, C++, Fortran, ...- autoconf/automake- CMake- Qmake- SCons

Plateforme Python- distutils (module de la bibliothèque standard)- setuptools- bento

Plateforme Java- ant- maven- gradle

Ce ne sont que les outils les plus populaires!

Page 8: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Génération d’exécutables

Linux Debian/Ubuntu- dpkg --build

Linux Redhat/SuSE- rpmbuild

MacOS X- PackageMaker (fait partie de Xcode)

Windows- WinInstall

Les exécutables (binaires) sont très spécifiques àune plateforme, qu’il convient de très bien connaître!

Quelques outils:

Cet aspect dépassele cadre de cette formation.

Page 9: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Autoconf

Description des caractéristiquesdont a besoin le logiciel. configure.ac

configureScript qui vérifie le systèmede l’utilisateur pour préparerl’installation du logiciel.

auto

conf

Page 10: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Automake

Description des fichiers sourceet des bibliothèques utilisées. Makefile.am

MakefilePermet la compilation, l’installation,la suppression, le test, ...

auto

mak

e

Page 11: Packaging: le premier pas la distribution dÕun logiciel€¦ · Packaging et d veloppement Idéalement: deux aspects d’un même processus Utilisez pour le développement la même

Python distutils

Description des modules Python,modules C/Cython, scripts,fichiers documentation, ...

setup.pypython setup.py sdist

installation

compilation

packaging

python

setu

p.py buildpython setup.py install