Paquet IBM Notes

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
StagiaireFGA
Messages : 4
Inscription : 18 juin 2015 - 12:17

18 juin 2015 - 13:56

Bonjour,

Je dois créer un paquet d'une application non disponible sur les dépôts officiels TIS.
IBM Notes 9.0.1

J'ai deux exécutables, le premier désinstalle proprement toutes versions de lotus notes qui serai installé sur la machine cliente. Le deuxième installe IBM Notes 9.0.1.

J'ai réussi à créer un paquet pour désinstaller et un autre pour installer de manière séparée, ça fonctionne très bien, mais il ne gère malheureusement pas la désinstallation à distance, il faut alterner avec les paquets et ce n'est pas vraiment terrible comme technique.

Je me retrouve donc avec deux paquets, deux scripts, complètement indépendant.

Code : Tout sélectionner

def install():
    print('Désinstallation de IBM Notes')
    run(r'"nice.exe" -rp -rd -wipe /qn+')

Code : Tout sélectionner

def install():
    print('Installation de IBM Notes 9.0.1')
    run(r'"IBM_NOTES_CLIENT_9.0.1_WIN_FR.exe" -s -a /s /v"ADDFEATURES=NotesPlugin /qn+"')
J'aimerais :
  1. Fusionner les deux codes afin de pouvoir installer ou désinstaller depuis la console avec le bouton prévu à cet effet. Au lieu d'alterner avec deux paquets.
  2. Au moment de l'installation sur une machine, détecter s'il y a déjà Notes d'installer, si oui lancer une désinstallation en premier
  3. Savoir comment arrêter des services et des processus en python.
Je ne demande pas forcément que vous fournissiez le code directement (ce serait vraiment bien, mais je n'en demande pas tant), parmi les applications du dépôt officiel, il doit surement y avoir un exemple reprenant le même schéma d'installation pour m'en inspirer.

N'ayant aucune connaissance en python ou dans un autre langage, il m'est très difficile de créer un script sans exemple.

Par avance, merci.
Avatar de l’utilisateur
Frédéric Bonnier
Messages : 24
Inscription : 23 juin 2014 - 10:10
Localisation : Nantes
Contact :

18 juin 2015 - 14:23

Bonjour,

Je pense que le paquet LibreOffice peut t'aider http://wapt.tranquil.it/wapt/tis-libreo ... 0_all.wapt.

Il détecte si un OpenOffice est installé, si oui il le désinstalle. Pareil pour les autres version de LibreOffice.

Dernière solution, nous organisons des formations WAPT :D

Frédéric
Frédéric Bonnier - Tranquil IT Systems
Affichez vous sur la carte des utilisateurs WAPT en répondant au questionnaire.
Découvrez nos offres de service sur Tranquil IT Systems et rejoignez nous sur Twitter
StagiaireFGA
Messages : 4
Inscription : 18 juin 2015 - 12:17

19 juin 2015 - 10:34

Merci, je me suis inspiré du paquet LibreOffice dans une moindre mesure. Voici le code que j'ai créé :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *
import os

uninstallkey = []
uninstallstring = []

def install():
	if os.path.exists("C:\Program Files (x86)\IBM\Notes" or "C:\Program Files (x86)\IBM\Lotus\Notes"):
		print('Désinstallation des anciennes version de Notes')
		run(r'"IBM_Notes\nice.exe" -rp -rd -wipe /qn+')
		print('Installation de IBM Notes 9.0.1')
		run(r'"IBM_Notes\IBM_NOTES_CLIENT_9.0.1_WIN_FR.exe" -s -a /s /v"ADDFEATURES=NotesPlugin /qn+"')
	else:
		print('Installation de IBM Notes 9.0.1')
		run(r'"IBM_Notes\IBM_NOTES_CLIENT_9.0.1_WIN_FR.exe" -s -a /s /v"ADDFEATURES=NotesPlugin /qn+"')
Pour pouvoir désinstaller depuis la console, je ne comprends pas trop comment ça fonctionne.
Notamment
uninstallkey = []
uninstallstring = []

Dans la doc, pour uninstallstring il dise "ligne de commande permettant de lancer la désinstallation du logiciel." je me suis donc empressé de mettre :

Code : Tout sélectionner

run(r'"IBM_Notes\IBM_NOTES_CLIENT_9.0.1_WIN_FR.exe" -s -a /s /v"ADDFEATURES=NotesPlugin /qn+"')
Entre crochet, mais sans succès.

Pour uninstallkey = [] c'est à nous de trouver la clé de registre permettant de désinstaller le logiciel ou c'est WAPT qui se charge lors de l'installation de la relever ? Car j'ai remarqué qu'elle n'était pas souvent renseignée de même pour uninstallstring = [] qui n'est pas toujours utilisé.

Merci, pour le temps que vous m'accordez.
StagiaireFGA
Messages : 4
Inscription : 18 juin 2015 - 12:17

24 juin 2015 - 15:33

Je me suis débrouillé tout seul et à force j'ai compris comment fonctionne les paquets et notamment la désinstallation grâce au registre.
Voici mon script, peut-être qu'il servira à d'autres personnes.

Code : Tout sélectionner

# -*- coding: utf-8 -*-

from setuphelpers import *
import platform

uninstallkey = []

def uninstall():
	# liste des logiciels nommés notes
	notes = installed_softwares('notes')
	# si cette liste n'est pas vide, on desinstalle explicitement chaque logiciel
	if notes:
		# boucle pour chaque logiciel trouvé
		for uninstall in notes:
			# on regarde si la version 9 est installée
			if uninstall['version'].startswith('9.'):
				# on recupere la commande de desinstallation correspondant à la clé du logiciel
				cmd = WAPT.uninstall_cmd(uninstall['key'])
				print(u'uninstalling %s' % (uninstall['name'],))
				# on execute la commande de desinstallation
				run_notfatal(cmd)
				# on supprime les dossiers restants
				run_notfatal(r'rmdir "C:\Program Files (x86)\IBM" /s /q ')

def install():
	# liste des logiciels nommés notes
	old_notes = installed_softwares('notes')
	zipmail = installed_softwares('zipmail')
	swiftfile = installed_softwares('swiftfile')
	# si zipmail est installé on desinstalle explicitement chaque logiciel
	if zipmail:
		# boucle pour chaque logiciel trouvé
		for uninstall in zipmail:
			# on regarde si la version 12 est installée
			if uninstall['version'].startswith('12.'):
				# on recupere la commande de desinstallation correspondant à la clé du logiciel SwiftFile 4.2
				cmd = WAPT.uninstall_cmd(uninstall['key'])
				print(u'uninstalling %s' % (uninstall['name'],))
				# on execute la commande de desinstallation
				run_notfatal(cmd)
	# pour désinstaller les anciennes version de zipmail
	zipmail = installed_softwares('zipmail')
	if zipmail:
		print('Supression de Zipmail v10')
		run_notfatal(r'C:\Windows\IsUn040c.exe -a -x -f"c:\Program Files (x86)\IBM\Lotus\Notes\Data\zmlnl.isu" -c"C:\Program Files (x86)\IBM\Lotus\Notes\Uninst.dll')
	# si swiftfile est installé on desinstalle explicitement chaque logiciel
	if swiftfile:
		# boucle pour chaque logiciel trouvé
		for uninstall in swiftfile:
			# on regarde si la version 4.2 est installée
			if uninstall['version'].startswith('4.2'):
				# on recupere la commande de desinstallation correspondant à la clé du logiciel SwiftFile 4.2
				cmd = WAPT.uninstall_cmd(uninstall['key'])
				print(u'uninstalling %s' % (uninstall['name'],))
				# on execute la commande de desinstallation
				run_notfatal(cmd)
	# pour désinstaller les anciennes version de zipmail
	zipmail = installed_softwares('zipmail')
	if swiftfile:
		print('Supression de SwiftFile 4.00')
		run_notfatal(r'MsiExec.exe /qn /x {34843AB3-8DBA-4388-8838-080635E1EDB6}')
	# si notes est installé, on desinstalle explicitement chaque logiciel
	if old_notes:
		# boucle pour chaque logiciel trouvé
		for uninstall in old_notes:
			# on regarde si la version 8 est installée
			if uninstall['version'].startswith('8.'):
				print('Supression de Notes 8.x')
				run_notfatal(r'"nice.exe" -rp -rd -wipe /qn')
			if uninstall['version'].startswith('9.'):
				print('Supression de Notes 9.x')
				run_notfatal(r'"nice.exe" -rp -rd -wipe /qn')
			# on supprime les dossiers restants
			run_notfatal(r'rmdir "C:\Program Files (x86)\IBM" /s /q ')
	
	# on installe ibm notes
	print('Installation de IBM Notes 9.0.1')
	run_notfatal(r'"IBM_NOTES_CLIENT_9.0.1_WIN_FR.exe" -s -a /s /v"ADDFEATURES=NotesPlugin,ClientSingleLogon /qn+"')
Les logiciels ZipMail et SwftFile sont spécifiques aux postes sur lesquels ont déploie nos logiciels, adaptez le script, selon vos besoins.
Verrouillé