View
83
Download
0
Category
Preview:
Citation preview
Industrialisation Gnu/Linux : du code au package logiciel
Quelle expérience en matière de :
Distribution Linux
Gestionnaire de version
Packaging
# 1 Tour de table
# 2 Une chaîne de production complète
Du code à son installation en passant par le packaging :
reproductible à n'importe quel moment
maintenable dans le temps car le contenu est parfaitement connu
traçable quel que soit le moment : d'où ça vient, qui l'a modifié, qui a reverté...
sécurisé : le contenu est généré dans un environnement connu et reproductible
# 2 Une chaîne de production complète
# 3 git : pourquoi ?
# 3 git : pourquoi ?rapide (opérations locales)
design simple
support optimal de la gestion des branches multiples
système complètement distribué (backups data)
sécurisation des données (checksum systématique)
staging de données
système capable de gérer de gros projets en matière de données et de rapidité
# 3 git : l’exemple de kernel.org
# 3 git : l’exemple de kernel.org
# 4 Packaging : ce qu’on en pense souvent...
# 4 Packaging : ce qu’on en pense souvent
Réservé aux packagers des distributions Linux
Pénible et sans intérêt
Une bonne occasion de multiplier les bugs
Une perte de temps
Le meilleur moyen de devoir se plonger dans les « subtilités » des distributions
# 4 Packaging : ce qui rend fou un packager
# 4 Packaging : ce qui rend fou un packagerdes librairies et autres dépendances embarquées dans les tarballs et qui se terminent en conflit
des librairies harcodées sur une architecture
des problèmes de licenses, différentes selon les composants
des binaires embarqués (plate-forme, sécurité, bugs)
des dépendances téléchargées lors de l'installation (pas de connaissance exhaustive du contenu, conflits)
hardcodage des spécificités des distributions : initiscripts, chemins...
# 4 Packaging : pourtant ça pourrait être ça...
# 4 Packaging : ce que ça apporte réellement
integration parfaite dans une distribution Linux
facilité d’utilisation pour l'utilisateur final : gestion des dépendances , installation, mise à jour, suppressionfacilitation de la diffusion du logiciel
traçabilité des versions et des fichiers installés sur un système
faciliter la recompilation du logiciel (moyennant les évolutions des outils comme autotools)
# 4 Packaging : qui est concerné ?
les développeurs qui contribuent à fournir un code facilitant le packaging
les entreprises qui utilisent un socle Linux pour leur infrastructure interne et qui modifient certains composants ou les personnalisent
les entreprises qui éditent une solution basée sur un OS Linux
# 4 Packaging : les politiques de packaging
non elles n’ont pas été écrites pour satisfaire un besoin sadique des packagers officiels des distributions !
elles sont le garant de la cohérence d’une distribution à un moment donné et dans le temps
# 4 Packaging : qualité et outils
vérification de la concordance des packages aux politiques (ex : rpmlint, lintian)
vérification de la signature des tarballs sources et des packages
vérification de la cohérence des dépots de packages
vérification de la qualité des changelogs
# 4 Packaging : faciliter la vie des administrateurs système
La situation idéale : passe le moins de temps possible sur l’installation, la mise à jour et la configuration des serveurs
packaging + centralisation de la configuration
# 4 Packaging : faciliter la vie des administrateurs système
limite les dépendances requises (pas de dépendances de build)
gère les dépendances automatiquement
facilite les mises à jour, investissement moindre une fois le premier package réalisé
gestion de patches traçable
conserve un historique des modifications
connaissance détaillée des logiciels installés et de leurs versions
# 4 Packaging : conseil pour les développeurs
fournir un script d’installation qui sera utilisé lors du build du package
Fournir la possibilité overrider la destination d'installation du logiciel sous peine de patch systématique
Vérifier l’existence des librairies et/ou dépendances embarquées
Porter une attention particulière à la réalisation du tarball de sources et à son versioning
@hupstreamhupstream.com #hupstream (freenode)
Recommended