| 1 | Fonctionnement des scripts de mise-à-jour d'AlternC |
|---|
| 2 | =================================================== |
|---|
| 3 | |
|---|
| 4 | Il a été décidé que des mises-à-jour pourront être "accrochées" à |
|---|
| 5 | certaines versions en les mettant dans le dossier upgrades. Un script |
|---|
| 6 | (probablement alternc.install) examinera ce dossier et appliquera les |
|---|
| 7 | mises-à-jour nécessaires, en se basant sur les numéros de version. Les |
|---|
| 8 | scripts considérés seront ceux terminés par .php, .sh ou .sql, et seront |
|---|
| 9 | interprétés avec php, /bin/sh ou mysql. |
|---|
| 10 | |
|---|
| 11 | Pour être considéré, le script doit aussi avoir un nom conforme. Le nom |
|---|
| 12 | du fichier doit être sous la forme \d(\.\d+)* (en expression régulière), |
|---|
| 13 | par exemple: 0.9.1.sh, 1.0.php, etc. De plus, le fichier est considéré |
|---|
| 14 | seulement si la version avec laquelle il est nommé tombe entre la |
|---|
| 15 | version de départ et d'arrivée du package. |
|---|
| 16 | |
|---|
| 17 | Plus formellement, maintenant. Soit un upgrade d'une version X à une |
|---|
| 18 | version Y. Les fichiers du dossier d'upgrade sont examinés un à un. Pour |
|---|
| 19 | chaque fichier dont le nom N.php, N.sh ou N.sql est X >= N <= Y, le |
|---|
| 20 | fichier est exécuté ou passé à mysql, selon le cas approprié. Les |
|---|
| 21 | versions sont comparées avec dpkg --compare-versions. |
|---|
| 22 | |
|---|
| 23 | Il est donc capital de nommer correctement ce fichier. |
|---|
| 24 | |
|---|
| 25 | Ces scripts devront être idempotents, car ils peuvent être exécutés à |
|---|
| 26 | plusieurs reprises, comme tous les scripts postinst et config. |
|---|
| 27 | |
|---|
| 28 | Mise en situation |
|---|
| 29 | ----------------- |
|---|
| 30 | |
|---|
| 31 | Exemple: 0.9.1 sera exécuté lors d'une mise à jour de 0.9 à 0.9.1 (ou |
|---|
| 32 | 1.0), mais pas d'une mise à jour de 0.9.1 à 1.0. |
|---|
| 33 | |
|---|
| 34 | Autre exemple: on procède à une mise à jour de alternc-0.9-20031009 vers |
|---|
| 35 | alternc-0.9.1. On trouve le script upgrades/0.9.1.sh. Celui-ci est |
|---|
| 36 | exécuté car 0.9-20031009 >= 0.9.1 <= 0.9.1. Il serait aussi exécuté pour |
|---|
| 37 | une mise à jour vers 0.9.2, 1.0, etc. |
|---|