NAME

edix_developpeur - Pratique de développement du système edix.

INTRODUCTION

Le système d'exploitation edix(7f) est en édition permanente. Les développeurs doivent donc s'assurer à tout moment, si l'administrateur d'une machine clone décide de faire une mise à jour (voir edix_mise_a_jour(7f)), il disposera toujours d'une machine fonctionnelle pour l'ensemble des travaux pratiques prévus sur edix (voir edix_travaux_pratiques(7f)).

RQ: On appelle machine clone une machine qui utilise le système d'exploitation edix dans sa version de référence. Pour des machines adpatées à des besoins spécifiques, voir edix_fille(7f).

Chaque développeur de edix doit avoir accès au serveur nastar. En effet, les évolutions graduelles d'edix sont toutes des modifications des fichiers de configuration et des scripts contenu dans le projet git suivant :

nastar:/nastar/git/edix.git

Les actes de développement consistent pour l'essentiel à

*
enrichir le projet git (notamment les pages de manuel et les scripts de mise à jour) ;
*
tester les mises à jours sur une machine utilisant edix~;
*
créer et publier de nouvelles versions du fichier image qui sert de base à tous les types d'installation.

PROBLEME: Dans cette façon de faire, les essais-erreurs liés aux évolutions du système effectuées par les développeurs sont vues par l'ensemble des administrateurs. Donc un utilisateur qui fait une mise à jour, pendant qu'un développeur travaille à une mise à jour majeure, va rencontrer des problèmes. Il suffirait certainement d'utiliser une branche develop sur le projet edix, mais cela n'a pas encore été précisé.

PASSER PAR UN CHROOT

Pour contribuer au développement d'edix, la procédure la plus simple est la suivante.

La machine hôte

On dispose d'une machine sous linux, que l'on appelle la machine hôte. L'utilisateur sur cette machine est appelé lamenaire dans toute la documentation des actes de développement :

*
lafrier est l'administrateur des machines sous edix ;
*
lamenaire est le développeur du système edix.

On clone le projet edix sur la machine hôte :

lamenaire:~ $ git clone nastar:/nastar/git/edix.git

Presque tous les actes de développements seront effectués dans le répertoire ainsi obtenu :

/home/lamenaire/edix

Créer une variable d'environnement globale sur la machine hôte

A l'échelle du système unix de la machine hôte, le développeur doit déclarer une variable d'environnement EDIX_DEVELOPPEUR qui contient l'adresse de ce répertoire. Sur gentoo par exemple :

lamenaire:~ $ doas echo "EDIX_DEVELOPPEUR="/home/lamenaire/edix" > /etc/env.d/999edix_developpeur lamenaire:~ $ doas env-update && source /etc/profile

En tout cas, dans tous les shells la commande

lamenaire:~ $ echo ${EDIX_DEVELOPPEUR}

doit renvoyer (dans notre exemple)

/home/lamenaire/edix

Cette variable d'environnement sera utilisée par les scripts de soutien au développement.

Télécharger l'image

On télécharge l'image de la machine edix de référence à l'adresse suivante :

https://nastar.laplace.enseeiht.fr/Edix/edix-57G.img.xz

et on la décompresse.

Chrooter sur l'image

Voir la page de manuel edix_chroot(7f)

Les actions de développement

Les étapes du travail de développement sont alors les suivantes :

*
faire évoluer le projet git edix sur la machine hôte et pousser la nouvelle version sur le nastar (RQ: à terme en utilisant une branche develop) ;
*
se logger en tant que lafrier sur l'image via le chroot et mettre à jour edix ;
*
tester si cela se passe bien et recommencer si besoin en retournant sur la machine hôte.

Voir notamment edix_developpeurs_opt_edix(7f) et edix_developpeurs_edstar(7f).

Quand on a une version d'edix validée, dont les évolutions sont significatives par rapport à la dernière machine de référence (edix-57G.img sur le web), notamment lorsqu'on a réalisé une mise à jour de la base de donnée de gentoo,

*
on laisse tourner le chroot ;
*
on passe sur la machine hôte ;
*
depuis l'extérieur du chroot (qui continue à tourner) on télécharge tout ce doit être mis à disposition sur https://nastar.laplace.enseeiht.fr/Edix/ notamment les bases de données et les binaires ;
*
on réduit le volume de l'image autant que possible en supprimant les fichiers inutiles ;
*
on ferme le chroot ;
*
on compresse l'image ;
*
on la recopie sur https://nastar.laplace.enseeiht.fr/Edix/

MISE A JOUR DU REPERTOIRE /opt/edix

Voir la page de manuel edix_developpeurs_opt_edix(7f).

MISE A JOUR DES LOGICIELS DEVELOPPES PAR edstar

Voir la page de manuel edix_developpeurs_edstar(7f).

AJOUT ET MODIFICATION DES LOGICIELS ADMINISTRES VIA gentoo

Voir la page de manuel edix_developpeurs_gentoo_mineur(7f).

MISE A JOUR GENTOO COMPLETE

Voir la page de manuel edix_developpeurs_gentoo_mineur(7f).

DEPLOIEMENT D'UN NOUVEAU FICHIER IMAGE

Voir la page de manuel edix_developpeur_mise_a_jour(7f)

VOIR AUSSI

edix(7f), edix_chroot(7f), edix_developpeurs_edstar(7f), edix_developpeurs_gentoo_majeur(7f), edix_developpeurs_gentoo_mineur(7f), edix_developpeur_mise_a_jour(7f), edix_developpeurs_opt_edix(7f), edix_mise_a_jour(7f), edix_travaux_pratiques(7f)