root/alternc/tags/0.9.7/install/upgrades/README

Revision 436, 2.4 kB (checked in by anarcat, 3 years ago)

[project @ alternc: changeset 2004-10-28 16:53:05 by anonymous]
essayer de clarifier tout ça

Original author: anonymous
Date: 2004-10-28 16:53:05

Line 
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. Lors de
6 l'installation d'un paquet, un script (upggrade_check.sh) examine ce
7 dossier et applique les mises-à-jour nécessaires, en se basant sur les
8 numéros de version. Les scripts considérés sont ceux terminés par
9 .sql, .sh ou .php, et sont interprétés avec mysql, /bin/sh ou php
10 respectivement, et dans cet ordre.
11
12 Pour être considéré, le script doit donc avoir un nom conforme,
13 c'est-à-dire sous la forme \d(\.\d+)* (en expression régulière), par
14 exemple: 0.9.1.sh, 1.0.php, etc. De plus, le fichier est considéré
15 seulement si la version avec laquelle il est nommé tombe entre la
16 version de départ et d'arrivée du package.
17
18 Voir ci-bas pour des exemples.
19
20 Description formelle du fonctionnement de upgrade_check.sh
21 ----------------------------------------------------------
22
23 Soit un upgrade d'une version X à une version Y. Les fichiers du
24 dossier d'upgrade sont examinés un à un. Pour chaque fichier dont le
25 nom N.php, N.sh ou N.sql est X >= N <= Y, le fichier est exécuté ou
26 passé à mysql, selon le cas approprié. Les versions sont comparées
27 avec dpkg --compare-versions.  Les scripts sont exécutés dans cet
28 ordre: *.sql *.sh *.php.
29
30 Il est donc capital de nommer correctement ce fichier.
31
32 Ces scripts devront être idempotents, car ils peuvent être exécutés à
33 plusieurs reprises, comme tous les scripts postinst et config.
34
35 (Note: en réalité, on ne vérifie pas la condition N <= Y. On assume que
36 si le script est disponible, il est applicable à cette version. Ceci
37 signifie qu'il ne faut pas "packager" un script d'upgrade N dans un
38 package Y si N > Y. Exemple: ne pas inclure un script 1.0 dans un
39 package 0.9, car il sera exécuté, même si la version installée est 1.0.)
40
41 Pour plus de détails, consultez directement le script
42 ../upgrade_check.sh, qui gère ces upgrades.
43
44 Mise en situation
45 -----------------
46
47 Exemple: 0.9.1 sera exécuté lors d'une mise à jour de 0.9 à 0.9.1 (ou
48 1.0), mais pas d'une mise à jour de 0.9.1 à 1.0.
49
50 Autre exemple: on procède à une mise à jour de alternc-0.9-20031009 vers
51 alternc-0.9.1. On trouve le script upgrades/0.9.1.sh. Celui-ci est
52 exécuté car 0.9-20031009 >= 0.9.1 <= 0.9.1. Il serait aussi exécuté pour
53 une mise à jour vers 0.9.2, 1.0, etc.
Note: See TracBrowser for help on using the browser.