Pacchetto IBM Notes

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
Stagista FGA
Messaggi: 4
Registrazione: 18 giugno 2015 - 12:17

18 giugno 2015 - 13:56

Buongiorno,

Ho bisogno di creare un pacchetto per un'applicazione che non è disponibile nei repository ufficiali TIS.
IBM Notes 9.0.1

Ho due eseguibili: il primo disinstalla in modo pulito qualsiasi versione di Lotus Notes eventualmente installata sul computer client. Il secondo installa IBM Notes 9.0.1.

Sono riuscito a creare un pacchetto per la disinstallazione e un altro per l'installazione separatamente, funziona molto bene, ma purtroppo non gestisce la disinstallazione remota, bisogna alternare i pacchetti e non è proprio una tecnica ottimale.

Quindi mi ritrovo con due pacchetti, due script, completamente indipendenti.

Codice: Seleziona tutto

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

Codice: Seleziona tutto

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+"')
Vorrei:
  1. Unisci i due codici in modo da poter installare o disinstallare dalla console utilizzando il pulsante dedicato, invece di passare da un pacchetto all'altro.
  2. Quando si esegue l'installazione su un computer, verificare se Notes è già installato; in tal caso, disinstallarlo prima
  3. Sapere come arrestare servizi e processi in Python.
Non ti sto chiedendo necessariamente di fornirmi direttamente il codice (sarebbe davvero bello, ma non ti chiedo così tanto), tra le applicazioni nel repository ufficiale, ci deve sicuramente essere un esempio che utilizza lo stesso schema di installazione per ispirarmi.

Non avendo alcuna conoscenza di Python o di altri linguaggi, è molto difficile per me creare uno script senza un esempio.

Grazie in anticipo.
Avatar utente
Frédéric Bonnier
Messaggi: 24
Registrazione: 23 giugno 2014 - 10:10
Posizione: Nantes
Contatto:

18 giugno 2015 - 14:23

Ciao,

credo che il pacchetto LibreOffice possa esserti d'aiuto: http://wapt.tranquil.it/wapt/tis-libreo ... 0_all.wapt.

Rileva se OpenOffice è installato e, in tal caso, lo disinstalla. Lo stesso vale per le altre versioni di LibreOffice.

Come ultima risorsa, organizziamo sessioni di formazione WAPT. :D

- Frédéric
Frédéric Bonnier - Tranquil IT Systems.
Registrati sulla mappa utenti WAPT compilando il questionario.
Scopri i servizi offerti da Tranquil IT Systems e seguici su Twitter.
Stagista FGA
Messaggi: 4
Registrazione: 18 giugno 2015 - 12:17

19 giugno 2015 - 10:34

Grazie, mi sono ispirato in misura minore alla suite LibreOffice. Ecco il codice che ho creato:

Codice: Seleziona tutto

# -*- 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+"')
Non capisco bene come funziona la disinstallazione dalla console.
In particolare
chiave di disinstallazione = []
stringa di disinstallazione = []

Nella documentazione, per uninstallstring c'è scritto "riga di comando per avviare la disinstallazione del software". Quindi ho aggiunto rapidamente:

Codice: Seleziona tutto

run(r'"IBM_Notes\IBM_NOTES_CLIENT_9.0.1_WIN_FR.exe" -s -a /s /v"ADDFEATURES=NotesPlugin /qn+"')
Ho provato a metterlo tra parentesi, ma senza successo.

Per uninstallkey = [], spetta a noi trovare la chiave di registro che ci permette di disinstallare il software o è WAPT a occuparsene durante l'installazione? Perché ho notato che non viene spesso compilata, e lo stesso vale per uninstallstring = [], che non viene sempre utilizzata.

Grazie per il tuo tempo.
Stagista FGA
Messaggi: 4
Registrazione: 18 giugno 2015 - 12:17

24 giugno 2015 - 15:33

Me la sono cavata da sola e alla fine ho capito come funzionano i pacchetti, in particolare la disinstallazione tramite registro.
Ecco il mio copione, forse potrà essere utile ad altri.

Codice: Seleziona tutto

# -*- 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+"')
I software ZipMail e SwftFile sono specifici per le postazioni di lavoro su cui viene distribuito il nostro software; adatta lo script in base alle tue esigenze.
Bloccato