Wiki du DRT

Outils d'utilisateurs

Outils du Site


mardi:wpkg_niveau2

Exporter la page au format Open Document

WPKG - NIVEAU 2


La page de présentation de WPKG se situe ici.


Objectifs de la présente page :

  • Comprendre la structure d'un paquet XML pour WPKG (attributs obligatoires et optionnels)
  • Connaître les différentes conditions de vérifications
  • Connaitre les différentes commandes pour une application, un script, une clé de base de registre, des manipulations sur des fichiers…
  • Permettre de déployer des applications plus complexes
  • Établir des XML seuls

Documentation librement inspirée de la documentation officielle.

Création de packages XML

Un paquet XML est un fichier texte qui définit comment installer et désinstaller des paquets logiciels. En d'autres mots, c'est une liste de tous les paquets et scripts pouvant être déployés ou exécuter sur les stations de travail.

Ce fichier doit être placé dans le même répertoire que wpkg.js, dans le dossier packages.

Architecture d'un paquet avec les paramètres obligatoires

Exemple

<?xml version="1.0" encoding="UTF-8"?>
<packages>
<package
        id="Exemple" 
        name="Exemple - logiciel d'exemple" 
        revision="3"
        priority="70" 
        reboot="false" >

<check type="uninstall" condition="exists" path="exemple" />
 
    <install cmd='msiexec /i "%SOFTWARE%\exemple\exemple.msi" /qn' />
 
    <remove cmd='msiexec /x "%SOFTWARE%\exemple\exemple.msi" /qn' />
 
  </package>
</packages>

Les attributs

Certains attributs sont obligatoires :

  • id - Un identificateur unique représentant le paquet. Doit être court, pertinent et ne pas faire référence à une version du logiciel.
  • name - La version longue. Le nom complet du produit.
  • revision - Un entier défini par l'utilisateur représentant la “version” du paquet. Doit être incrémenté à chaque nouvelle release. On pourra utiliser une variable pour cela.
  • reboot - Si égal à “true”, le système redémarre à la fin de l'installation, de la désinstallation, de la mise à jour du paquet.

Peu d'intérêt pour les stations sous XP puisque l'installation se fait à l'extinction du poste.

  • priority - Valeur numérique spécifiant l'ordre d'installation. Plus le nombre est grand, plus la priorité est grande, plus tôt le paquet sera installé par rapport à d'autre dont la priorité est moins importante.

Cette priorité est importante dans le cas de dépendances entre paquets.

Certains sont facultatifs :

L'attribut “execute”

Quelquefois, on souhaite lancer un script ou un paquet chaque fois que WPKG se lance. On utilisera donc l'attribut execute.

execute="always"

De la même manière, on peut ne vouloir lancer qu'une fois un script ou un paquet, on peut le faire avec la commande suivante :

execute="once"

Ce paramètre se met à la suite des attributs principaux.

Si vous utilisez execute=“always”, lors des incréments des révisions, seul les commandes <install> sont utilisées (pas upgrade),
Si vous utilisez execute=“once”, lors des incréments des révisions, seul les commandes <upgrade> sont utilisées,
Tous les checks sont ignorés lors de l'utilisation de always ou once !

Les variables

Les variables d'environnement Windows

Cf cette très bonne page de Wikipédia.

Les variables les plus utilisées avec WPKG sont :

  • %PROGRAMFILES% → C:\Program Files\ (sous windows XP) ou C:\Programmes\ (sous Windows 7 64 bits)
  • %PROGRAMFILES(x86)% → C:\Program Files (x86)\ pour les systèmes 64 bits
  • %SYSTEMROOT% = %WINDIR% → C:\Windows\ (sous windows XP)
  • %COMPUTERNAME% → le nom du PC
  • %COMSPEC% → lance l'interpréteur de ligne de commande (cmd.exe)

%SOFTWARE% est une variable spécifique WPKG, raccourci de → /home/wpkg/softwares/ (paramétré dans wpkg_gen_config)

Variables dans le paquet XML

Il est fortement recommandé d'utiliser des variables dans les paquets XML qui vont simplifier la mise à jour des paquets.

Pour utiliser une variable, il faut la déclarer sous la définition du paquet :

<variable name="version" value="9.2" />

Ensuite, pour utiliser cette variable, on va pouvoir l'appeler via %version%.

On peut mettre autant de variables que l'on souhaite.

Un paquet bien fait avec des variables permet de faire un upgrade logiciel en changeant uniquement la valeur de la variable.

Exemple avec FreePlane :

<package
    id="Freeplane"
    name="Freeplane - Logiciel libre de mind-mapping"
    revision="%version%.1"
    reboot="false"
    priority="100">

<variable name="version" value="1.1.3" />

<eoledl dl='http://sourceforge.net/projects/freeplane/files/freeplane%20stable/%version%/Freeplane-Setup-%version%.exe/download' destname='freeplane/' />

    <check type="uninstall" condition="exists" path="Freeplane" />

    <install cmd='"%SOFTWARE%\Freeplane\Freeplane-Setup-%version%.exe" /VERYSILENT' />
    
    <upgrade cmd='"%SOFTWARE%\Freeplane\Freeplane-Setup-%version%.exe" /VERYSILENT' />
    
    <remove cmd='"%PROGRAMFILES%\Freeplane\unins000.exe" /VERYSILENT' />
    <remove cmd='%COMSPEC% /C rmdir /S /Q "%PROGRAMFILES%\Freeplane"' />

</package>

Si je change 1.1.3 en 1.1.4 (le jour où cette version stable sortira), cela mettra à jour 4 lignes automatiquement :

  1. revision
  2. eoledl (lien de téléchargement) → à condition que les développeurs n'aient pas changé leur URL
  3. install
  4. upgrade

Les conditions de vérification <check>

Évidemment, il serait inapproprié de lancer l'installation d'un logiciel déjà installé… C'est pourquoi existent les conditions de vérification.

Il existe 3 catégories de conditions de vérification :

  1. Registre → Teste les conditions par rapport à la base de registre
  2. Fichier → Teste les conditions par rapport aux fichiers
  3. Uninstall → Teste les conditions par rapport aux logiciels apparaissant dans Ajout/Suppression de programmes

Registry

Les tests sur le registre permettent de vérifier l'existence ou la valeur d'une clé spécifique. Il y a deux type de conditions applicables au registre système : exists et equals.

  1. exists → Vérifie l'existence d'une clé de registre. Si la clé de registre est trouvée, la condition retourne vrai, sinon elle retourne faux.
  2. equals → Vérifie la valeur d'une clé de registre. Si la clé de registre est trouvée et que la valeur correspond, la condition retourne vrai, sinon elle retourne faux.

Exemples :

Cet exemple teste la présence d'Acrobat Reader dans le registre système :

<check type="registry" condition="exists" path="HKLM\Software\Adobe\Acrobat Reader\10.0" />

Cet exemple vérifie que Firefox en français FR et en version 9.0.1 est installé :

<check type="registry" condition="equals" path="HKLM\Software\Mozilla\Mozilla Firefox\CurrentVersion" value="9.0.1 (fr)" />

File

Les vérifications sur les fichiers permettent de tester l'existence, la taille ou la version d'un fichier. Voici les différentes possibilités :

  • exists → Vérifie l’existence d'un fichier. Si le fichier est trouvé, la condition retourne vrai.
  • sizeequals → Vérifie la taille d'un fichier. Si le fichier est trouvé et que la taille est conforme à celle attendue, la condition retourne vrai.
  • versionsmallerthan → Vérifie la version d'un fichier. Si le fichier est trouvé et que la version est plus petite que celle attendue, la condition retourne vrai.

  • versionlessorequal → Vérifie la version d'un fichier. Si le fichier est trouvé et que la version est plus petite ou égale que celle attendue, la condition retourne vrai.
  • versionequalto → Vérifie la version d'un fichier. Si le fichier est trouvé et que la version est égale à celle attendue, la condition retourne vrai.
  • versiongreaterorequal → Vérifie la version d'un fichier. Si le fichier est trouvé et que la version est plus grande ou égale que celle attendue, la condition retourne vrai.
  • versiongreaterthan → Vérifie la version d'un fichier. Si le fichier est trouvé et que la version est plus grande que celle attendue, la condition retourne vrai.

Exemples :

Cet exemple vérifie l'existence d'Adobe Reader dans le système de fichiers:

<check type="file" condition="exists" path="%PROGRAMFILES%\Adobe\Reader 10.0\Reader\AcroRd32.exe" />

Cet exemple vérifie que Firefox en version 9.0.1 est installé (test basé sur la taille du fichier firefox.exe).

<check type="file" condition="sizeequals" path="%PROGRAMFILES%\Mozilla Firefox\firefox.exe" value="924632" />

La taille est la taille du fichier et pas celle sur le disque. Elle est exprimée en octets.

Cet exemple vérifie que la version du fichier firefox.exe actuellement installée est inférieure à 9.0.1 :

<check type="file" condition="versionsmallerthan" path="%PROGRAMFILES%\Mozilla Firefox\firefox.exe" value="9.0.1" />

Uninstall

Les tests de type uninstall permettent vérifier la présence de clé de registre spécifiques aux logiciels installés (ceux que l'on voit dans Ajout/suppression de programmes). Microsoft Windows maintient cette liste de logiciels désinstallables dans : HKLM\Software\Microsoft\Windows\Current Version\Uninstall. Le test effectue une comparaison avec la valeur DisplayName de chaque clé présente dans ce chemin.

L'unique condition disponible est exists.

exists → Vérifie l'existence d'un logiciel dans la liste des logiciels installés du registre système. Si le logiciel est trouvé, la condition retourne vrai.

Exemples :

Cet exemple vérifie l'existence d'Adobe Reader dans la liste des logiciels installés du registre système :

<check type="uninstall" condition="exists" path="Adobe Reader X (10.1.0) - Français" />

Cet exemple vérifie que Firefox 9.0.1 est installé dans la liste des logiciels installés du registre système :

<check type="uninstall" condition="exists" path="Mozilla Firefox 9.0.1 (x86 fr)" />

Conditions Logiques sur <check>

Il est possible de vérifier entre 0 et x conditions.

Si aucune condition n'est donnée, WPKG essaiera toujours d'installer le logiciel, qu'il soit déjà installé ou non.

Pour faciliter l'utilisation de plusieurs conditions, il y a un quatrième type de condition qui peut être rajouté, appelé condition logique.

Les conditions logiques permettent de créer des conditions multiples de vérification de l'installation d'un logiciel.

Les conditions logiques sont des conditions de haut-niveau, tandis que les conditions de vérifications réelles sont des sous-branches dans le fichier XML.

Les conditions logiques suivantes sont disponibles: not, and, or, atleast et atmost.

Exemples :

Disons que, pour l'exemple, vous voulez installer un paquet Adobe Reader 10.1.0 seulement sur les machines tournant sous Windows XP SP2 pour cause d'incompatibilité étrange…

Pour ce genre de scénario, vous pourriez utiliser des profils multiples :

  • un profil pour les machines SP1
  • et un autre pour les machines SP2.

Cependant, pour l'exemple, disons que toutes les machines sont dans le même profil. On peut alors créer une condition logique qui nous permet de valider notre scénario.

<check type="logical" condition="or">
   <check type="uninstall" condition="exists" path="Adobe Reader X (10.1.0) - Français" />
   <check type="registry" condition="equals" path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CSDVersion" value="Service Pack 1" />
</check>

La deuxième condition peut paraître peu intuitive, mais rappelez-vous que quand vous écrivez des conditions, vous recherchez l'absence de choses plutôt que leur présence.

Ce que dit la condition est que “Est-ce qu'Adobe Reader 10.1.0 est installé OU le SP2 est installé ?” Si au moins une des conditions est validé l'installation de reader 10.1.0 n'est pas réalisée.

Quand toutes les conditions ont été testés et que le résultat final est faux, WPKG essaiera d'exécuter les commandes <install>

Après l'exécution, WPKG vérifiera le code retour de sortie (normalement 0 dans l'exemple) *ET* revérifiera les conditions.

Si *une seule* condition n'est pas vérifiée, le logiciel est considéré comme *non* installé, prenez garde lors de la rédaction de ces dernières !

Il n'est pas nécessaire d'utiliser systématiquement les trois types de conditions. Souvent, une suffit : Si le logiciel que vous souhaitez installer apparaît dans Ajout/Suppression de programmes (tous ne le font pas), il est suffisant d'utiliser le test “uninstall”.

Paramètres facultatifs

Les dépendances

Un certain nombre de logiciels nécessitent d'autres logiciels pour fonctionner.

Quelques exemples :

  • Scribus dépend de GPLGhostScript
  • LibreOffice ou GeoGebra dépendent de Java
  • Une extension de LibreOffice dépend de la bonne installation de LibreOffice

Pour déclarer une dépendance, il faut ajouter la ligne suivante :

<depends package-id="Java" />

Le nom est l'id du package, la casse est prise en compte !

Attention, on ne peut pas désinstaller Java, tant que GeoGebra est installé par exemple !

Liens de téléchargement

WPKG-Manage permet de télécharger de manière semi-automatique les exécutables sur le serveur Scribe. Pour cela, il faut lui fournir le lien via la balise :

<eoledl dl='url'... />

On peut aussi mettre une variable dans l'URL.

Exemple :

<eoledl dl="http://www2.ac-lyon.fr/serv_ress/mission_tice/wiki/_media/i18n.zip" destname="\physique\avogadro\i18n\" unzip="1" />
  • dl = lien vers le fichier à télécharger
  • destname = nom d'un dossier ou d'un fichier. Dans le cas d'un dossier aucun changement de nom n'est effectué, le fichier est seulement placé dans le dossier. Dans le cas d'un nom de fichier, le fichier téléchargé est renommé. Dans tous les cas, si le dossier n'existe pas, il est créé. Pour qu'un nom soit considéré comme un dossier il doit se finir par un ”/” ou un “\”.
  • unzip = indique s'il faut dézipper le fichier téléchargé

WPKG, écrit en Python, ne permet pas de télécharger via le protocole FTP. Donc, tous les liens en FTP ne fonctionneront pas (Exemple d'Epson Tools)

Les actions

Wpkg comprend quatre actions : install, upgrade, downgrade et remove. De multiples commandes pour chacune de ces actions peuvent être listées dans le fichier de config et wpkg les éxecutera dans l'ordre dans lequel elles sont listées.

  • Les commandes install sont exécutées quand un nouveau paquet est détecté dans un profil et que l'application n'existe pas sur le poste.
  • Les commandes upgrade sont exécutées quand une nouvelle révision du paquet est détectée.
  • Les commandes downgrade sont exécutées quand une ancienne révision du paquet est détectée.
  • Les commandes remove sont exécutées quand un paquet est enlevé d'un profil.

Seule <install> est obligatoire pour mettre en place le paquet. Les autres ne sont pas nécessaires mais fortement recommandées. <downgrade> est rarement spécifiée mais peut tout de même servir…

La méthode correcte pour exécuter une commande de l'interpréteur est d'utiliser la variable d'environnement %comspec%, et non de spécifier explicitement cmd.exe.

Quand la sortie d'une commande est trop importante (cas de copy ou cacls), la commande échouera car elle va saturer le journal des évènements windows. Vous devez rediriger la sortie vers NUL ou un fichier :

%command% > nul

Exemples d'actions

<install cmd="msiexec /qn /i %SOFTWARE%\package.msi" />
<install cmd="msiexec /qn /i %SOFTWARE%\package.msi" timeout="1800" />
<install cmd="%comspec% /c copy %SOFTWARE%\file.dll %WINDIR%" />
<remove cmd="msiexec /qn /x %SOFTWARE%\package.msi" />

L'option timeout indique à wpkg combien de temps attendre que la commande termine. C'est en secondes et la valeur par défaut est de 3600 secondes.

Vous pouvez positionner l'option reboot à “true” avec ceci :

<install cmd="msiexec /qn /i %SOFTWARE%\package.msi" >
    <exit code="3010" reboot="true" />
    <exit code="0" />
</install>

Récapitulatif des commandes d'installation, upgrade ou remove

Fichier MSI

msi.jpg

Install<install cmd=“msiexec /qn /i %SOFTWARE%\package.msi” />
Upgrade<upgrade cmd=“msiexec /qn /i %SOFTWARE%\package.msi” />
Remove<remove cmd=“msiexec /qn /x %SOFTWARE%\package.msi” />
<remove cmd=“msiexec /qn /x {ProductCode}” />

Fichier .exe avec Installateur InnoSetup

Install <install cmd='”%SOFTWARE%\setupInno.exe” /VERYSILENT' />
Upgrade <upgrade cmd='”%SOFTWARE%\setupInno.exe” /VERYSILENT' />
Remove <remove cmd='”%PROGRAMFILES%\DossierInstall\unins000.exe” /VERYSILENT' />

Fichier .exe avec Installateur NSIS

Install <install cmd='”%SOFTWARE%\setupNSIS.exe” /S' />
Upgrade <upgrade cmd='”%SOFTWARE%\setupNSIS.exe” /S' />
Remove <remove cmd='”%PROGRAMFILES%\DossierInstall\uninstall.exe” /S' />

Prise en compte des différents systèmes d'exploitation

On peut ne vouloir installer que sur des postes XP, ou que sur des postes 7, ou alors que sur les postes ayant une architecture 32 ou 64 bits. Pour cela, il faudra faire passer des arguments dans les lignes de commande.

Fonction du système d'exploitation

Pour installer uniquement sur XP :

<install os=".+5\.[1-2]\.\d{4}" cmd=... />

Pour installer uniquement sur 7 :

<install os=".+6\.[0-1]\.\d{4}" cmd=... />

Fonction de l'architecture

Pour désinstaller uniquement sur une architecture 32 bits :

<remove cmd='msiexec /x "%SOFTWARE%\7zip\7z%version%.msi" /qn' architecture='x86' />

Pour désinstaller uniquement sur une architecture 64 bits :

<remove cmd='msiexec /x "%SOFTWARE%\7zip\7z%version%-x64.msi" /qn' architecture='x64' />

Fonctions avancées de WPKG

Gestion des fichiers et dossiers



Action Commande
Exemple
explication des commutateurs
Supprimer un fichier cmd='%ComSpec% /C del /f /q “chemin_vers_fichier” '


Exemple : suppression du fichier wpkg.xml du disque local

cmd='%ComSpec% /C del /f /q ”%SYSTEMROOT%\system32\wpkg.xml” '
/C → ferme après exécution
/f → même en lecture seule
/q → mode silencieux
Supprimer un dossier cmd='%ComSpec% /C rmdir /S /Q “chemin vers dossier” '

Exemple : Supprimer le dossier Audacity de C:\Program Files\ :

cmd='%ComSpec% /C rmdir /S /Q ”%PROGRAMFILES%\Audacity” '
/S → récursif (y compris les sous répertoires)
/Q → sans confirmation
Copier un fichier cmd='%ComSpec% /C copy “chemin du fichier source” “chemin vers destination” /Y'

Exemple : Copier le fichier Lame_enc.dll vers le dossier C:\Program Files\Audacity\ :

cmd='%ComSpec% /C copy ”%SOFTWARE%\audacity\lame_enc.dll” ”%PROGRAMFILES\Audacity\” /Y'
/Y → sans confirmation
Copier un dossier cmd='%ComSpec% /C xcopy “chemin du dossier source\* ” “chemin du dossier de destination\” /S /E/ /Y /Q /R'

Exemple : Copier le contenu du dossier ooohg dans la gallerie d'OpenOffice.org :

cmd='%ComSpec% /C xcopy ”%SOFTWARE%\ooohg\*” ”%PROGRAMFILES%\OpenOffice.org 3\Basis\share\gallery\” /S /E /Y /Q /R'
/E → récursif y compris les répertoires vides
/R → remplace les fichiers en lecture seule

;-) Pour trouver la signification des commutateurs, lancer une fenêtre DOS (Démarrer→ Exécuter → saisir cmd ) puis saisir la commande suivie de espace /?
Exemple : xcopy /?

Gestion de la base de registre



Action Commande
Exemple
Contenu du fichier
Fusionner un fichier .reg dans la base de registre cmd='regedit /s “chemin du fichier .reg”'


Exemple : ajouter une police de caractère au disque local

cmd='regedit /s ”%SOFTWARE%\Fonts\ajout-fonts.reg”'

Contenu de ajout-fonts.reg :
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
“Bestioles (TrueType)”=“Bestioles.TTF”
“Century Gothic Normal (TrueType)”=“GOTHIC.TTF”
“Cornerstone Regular (TrueType)”=“Cornerstone.TTF”
“PlumBAL (TrueType)”=“PLUMBAL.TTF”
Exécuter un fichier .bat cmd='“chemin du fichier .bat”'


Exemple : ajouter une police de caractère au disque local

cmd='”%SOFTWARE%\Fonts\ajout-fonts.bat”'

Contenu de ajout-fonts.bat :
%COMSPEC% /c copy /Y ”%SOFTWARE%\Fonts\*.TTF” ”%WINDIR%\Fonts\
“regedit /s ”%SOFTWARE%\Fonts\ajout-fonts.reg”

Gestion des utilisateurs locaux



Il est possible d'ajouter des utilisateurs locaux via WPKG. Une fois cela fait, il est très facile de mettre à jour le mot de passe pour ne plus autoriser les personnes à se connecter.

On va utiliser la commande DOS : net user.

Création d'un compte local

<!-- création du compte défini au dessus avec mot de passe defini au dessus -->    
<install cmd='cmd /c net user login pass /add' />

Les différentes options de net user sont :

/passwordchg:yes
/expires:never
/active:yes
/passwordchg:no

D'après le CG69, il semble qu'il faille mettre la possibilité de modifier le mot de passe (/passwordchg:yes) puis les autres options, et enfin, remodifer l'option de mot de passe si besoin. Sans quoi, certaines options ne sont pas prises en compte.

Création d'un administrateur local

<!-- on ajoute le compte crée au groupe administrateurs -->
<install cmd='cmd /c net localgroup administrateurs login /add' />

Modification d'un mot de passe d'un utilisateur local

<install cmd='cmd /c net user login nouveaumotdepasse' />

L'idée sera d'utiliser des variables pour simplifier la lecture des fichiers XML.

Gestion des ACLS Windows



On peut aussi modifier des droits (ACL) sur des fichiers. Pour cela, on peut utiliser la commande CACLS.

c:\> cacls
Affiche ou modifie les listes de contrôle d'accès (ACL) des fichiers

CACLS nom_de_fichier [/T] [/E] [/C] [/G util:perm] [/R util [...]]
                     [/P util:perm [...]] [/D util [...]]
   nom_de_fichier  Affiche les ACL.
   /T              Modifie les ACL des fichiers spécifiés dans le répertoire en cours et tous les sous-répertoires.
   /E              Edite l'ACL au lieu de la remplacer.
   /C              Continue la modification des ACL en ignorant les erreurs.
   /G util:perm    Donne  l'utilisateur spécifié les droits d'accès.
                   Perm peut être : R  Lecture
                                    W  Ecriture
                                    C  Modification (en écriture)
                                    F  Contrôle total
   /R util         Retire les droits d'accès de l'utilisateur (avec /E).
   /P util:perm    Remplace les droits d'accès de l'utilisateur spécifié.
                   Perm peut être : N  Aucun
                                    R  Lecture
                                    W  Ecriture
                                    C  Modification (en écriture)
                                    F  Contrôle total
   /D util         Refuse l'accès à l'utilisateur spécifié.
Des caractères génériques peuvent être utilisés pour préciser plusieurs fichiers dans une commande. Vous pouvez spécifier plus d'un utilisateur dans une commande.

Abréviations :
   CI - Héritage de conteneur (Container Inherit).
        Les répertoires héritent de l'entrée de contrôle d'accès.
   OI - Héritage d'objet (Object Inherit).
        Les fichiers héritent de l'entrée de contrôle d'accès.
   IO - Héritage uniquement (Inherit Only).
        L'entrée de contrôle d'accès ne s'applique pas au fichier ou
        répertoire en cours.

c:\>

Exemple de commande CACLS

Ces 2 exemples n'ont pas été réellement testés !

Cette commande permet de rendre le dossier c:\mondossier\ en lecture/écriture pour tous les utilisateurs du domaine :

<install cmd='cmd /c cacls c:\mondossier /E /G DomainUsers:W' />

Si la commande est trop longue, il faudra rediriger la sortie vers NUL.

<install cmd='cmd /c cacls c:\mondossier /E /G "Tout le monde":W >nul' />

TP 1:

Certains paquets, mêmes publiés dans “paquetages stables” sur Rezotice sont un peu plus sioux !

Vérifiez ainsi le fonctionnement des paquets :

  • Arrêt programmé des stations Seven
  • Java
  • Vlc

TP 2:

Réaliser le package de PaPus MP3 (Petit lecteur de fichier Mp3, beaucoup plus léger et maniable qu'audacity : téléchargement ici : http://papiermusique.fr/dossier03.php/)

D'autres exemples :

TP 3:

FIXME

Objectif :

Créer un paquet faisant une copie de l’exécutable calc.exe (calculatrice) dans un dossier C:\a-son-nom\ (dossier crée par WPKG). L’exécutable calc.exe se situe à la racine du dossier U:\wpkg\softwares\ de l'admin.

Pour cela :

  • Créer un package XML (dans T:\travail\wpkg_niveau2) à son nom en utilisant la base suivante :
<?xml version="1.0" encoding="UTF-8"?>
<packages>
<package
    id="a-son-nom"
    name="Copier la calculatrice dans un autre dossier"
    revision="1.0"
    priority="0">
     
     <install cmd= />

<!-- <upgrade cmd= /> -->
     
     <remove cmd='echo "nothing"' />

</package>
</packages>
  • Faites copier ce XML au formateur dans U:\wpkg\packages\, et demander son installation dans la salle.
  • Redémarrer le poste afin d’exécuter le paquet dans la salle
  • Vérifier la présence du fichier dans c:\a-son-nom\
  • Redémarrer à nouveau le poste, que se passe-t-il ?
  • Que faut il faire pour l'éviter et corriger le paquet ?
  • Redémarrer l'ordinateur. La modification a-t elle été prise en compte ?
  • Supprimer le fichier dans c:\a-son-nom\
  • Redémarrer le poste
  • Adapter le XML afin qu'il supprime le dossier C:\a-son-nom\
  • Vérifier le bon fonctionnement…
mardi/wpkg_niveau2.txt · Dernière modification: 2014/10/10 14:53 par pdumas