Bonjour à tous,
Tout d'abord, je tiens à préciser que je suis nouveau sur le forum. J'espère que je poste au bon endroit.
Je suis actuellement entrain de développer un installeur qui me permet d'installer Microsoft VC++, Apache24, PHP7, bigSQL et certains de ses composants via un script InnoSetup pour une application.
Pour le moment ça va, j'ai réussi à installer tout ce que je voulais. Il me reste à gérer le cas d'une installation dans le cas où il y en a déjà une.
Dans ce cas de figure, j'aimerai me contenter de mettre à jour un dossier htdocs présent dans le répertoire Apache24 de mon application. Je ne veux pas m'embêter à tout réinstaller, car à priori si l'utilisateur fait une installation alors qu'elle a déjà été faites, il a déjà bigSQL et donc : postgreSQL, pgadmin3 et bam2 (les composants que j'installe via bigSQL).
Mon script utilise un dossier SOURCES qui contient tous les éléments dont il a besoin pour réaliser l'installation.
Le problème, c'est que je ne sais pas du tout comment je vais faire pour ne choisir de mettre à jour que ce dossier : {#SOURCES}\repertoires\Apache24\htdocs et non tout le reste...
Voici à quoi ressemble ma section [Files] :
ça c'est ce qui se passe, pour le moment dans une installation normale. Dans le cas d'une mise à jour j'aimerai n'utiliser que la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 [Files] ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Définition des fichiers à installer ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Source: "{#SOURCES}\repertoires_poste_dev\Apache24\*"; DestDir: "{app}\Apache24"; Flags: ignoreversion recursesubdirs; Source: "{#SOURCES}\repertoires_poste_dev\PHP7\*"; DestDir: "{app}\PHP7"; Flags: ignoreversion recursesubdirs; Source: "{#SOURCES}\logiciels\vc_redist.x86.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall Source: "{#SOURCES}\repertoires_poste_dev\bigsql\*"; DestDir: "{code:GetPGLoc}"; Flags: recursesubdirs; Source: "{#SOURCES}\ressources\readMe.txt"; DestDir: "{app}\readMeRep"; Flags: isreadme
Le problème, c'est que, par la suite, j'ai toute une installation des composants de bigSQL qui se fait dans ma méthode [Run] et que j'aimerai bien annulé, la voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Source: "{#SOURCES}\repertoires_poste_dev\Apache24\htdocs\*"; DestDir: "{app}\Apache24\htdocs"; Flags: recursesubdirs;
Et donc, j'aimerai annuler ces instructions si je détecte une installation déjà présente. Car mon but est de me contenter de mettre à jour le dossier htdocs dans ce cas là.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 [Run] ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Lancement de l''installeur de microsoft VC++ ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Filename: "{tmp}\vc_redist.x86.exe"; StatusMsg: "{cm:InstallVC}"; ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Installation des composants de bigSQL (bam2, pg96, pgAdmin) ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Filename: "{code:GetPGLoc}\pgc.bat"; Parameters: "install pgadmin3"; StatusMsg: {cm:InstallPgAdmin} Filename: "{code:GetPGLoc}\pgc.bat"; Parameters: "install bam2"; StatusMsg: {cm:InstallBam2} Filename: "{code:GetPGLoc}\pgc.bat"; Parameters: "install pg96"; StatusMsg: {cm:InstallPg}; AfterInstall: setPassword(); Filename: "{code:GetPGLoc}\pgc.bat"; Parameters: "init pg96"; StatusMsg: {cm:InitPg}; AfterInstall: deletePassword(); Filename: "{code:GetPGLoc}\pgc.bat"; Parameters: "start bam2"; StatusMsg: {cm:RunBam2} Filename: "{code:GetPGLoc}\pgc.bat"; Parameters: "config pg96 --autostart=on"; BeforeInstall: changePgConf(); StatusMsg: {cm:ConfigPg} Filename: "{code:GetPGLoc}\pgc.bat"; Parameters: "start pg96"; StatusMsg: {cm:RunPg} ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Restauration de la base de données. ;-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Roles Filename: "{code:GetPGLoc}\pg96\bin\psql.exe"; Parameters: "-U {#PGUSER} -f ""{#SOURCES}\ressources\restauration_bdd\roles.backup"""; StatusMsg: {cm:RestoUser} ; BDD Filename: "{code:GetPGLoc}\pg96\bin\createdb.exe"; Parameters: "-U {#PGUSER} --template template0 --encoding UTF8 --owner fratso {#PGBASE}"; StatusMsg: {cm:CreateDB} Filename: "{code:GetPGLoc}\pg96\bin\pg_restore.exe"; Parameters: "-U {#PGUSER} -O --dbname={#PGBASE} ""{#SOURCES}\ressources\restauration_bdd\maResto.backup"""; StatusMsg: {cm:RestoDB} ; Rajouts des extensions. Filename: "{code:GetPGLoc}\pg96\bin\psql.exe"; Parameters: " -U {#PGUSER} -v ON_ERROR_STOP=1 --single-transaction -q -a -f ""{#SOURCES}\ressources\restauration_bdd\extensions.sql"""; StatusMsg: {cm:CleaningPg} ; Réindexation de la base. Filename: "{code:GetPGLoc}\pg96\bin\reindexdb.exe"; Parameters: " -U {#PGUSER} --quiet {#PGBASE}"; AfterInstall: cleanPgRepo(); StatusMsg: {cm:ReindexDB} ; Redémarrage de pg96. Filename: "{code:GetPGLoc}\pgc.bat"; Parameters: "restart pg96"; BeforeInstall: changePgHBA(); StatusMsg: {cm:RestartPg}
Si quelqu'un a une idée de comment je pourrais procéder, je lui en serait très reconnaissant.
Surtout si vous avez besoin de plus d'informations, n'hésitez pas à me les demander !
Partager