packaging: le premier pas la distribution dÕun logiciel€¦ · packaging et d veloppement...
TRANSCRIPT
Packaging: le premier pas à la distribution d’un
logiciel
Konrad HINSEN
Centre de Biophysique Moléculaire (Orléans)et
Synchrotron Soleil (St Aubin)
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 !
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?
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
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.
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.
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!
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.
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
Automake
Description des fichiers sourceet des bibliothèques utilisées. Makefile.am
MakefilePermet la compilation, l’installation,la suppression, le test, ...
auto
mak
e
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