Paquete IBM Notes

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
Pasante de FGA
Mensajes: 4
Inscripción: 18 de junio de 2015 - 12:17

18 de junio de 2015 - 13:56

Buen día,

Necesito crear un paquete para una aplicación que no está disponible en los repositorios oficiales de TIS.
IBM Notes 9.0.1

Tengo dos ejecutables: el primero desinstala correctamente cualquier versión de Lotus Notes que pueda estar instalada en el equipo cliente. El segundo instala IBM Notes 9.0.1.

Logré crear un paquete para desinstalar y otro para instalar por separado, funciona muy bien, pero desafortunadamente no maneja la desinstalación remota, debes alternar con los paquetes y realmente no es una gran técnica.

Así que termino con dos paquetes, dos scripts, completamente independientes.

Código: Seleccionar todo

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

Código: Seleccionar todo

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+"')
Me gustaría :
  1. Fusiona los dos códigos para que puedas instalar o desinstalar desde la consola usando el botón dedicado, en lugar de cambiar entre dos paquetes separados.
  2. Al instalarlo en una máquina, verifique si Notes ya está instalado; si es así, desinstálelo primero
  3. Saber cómo detener servicios y procesos en Python.
No necesariamente te pido que me proporciones el código directamente (eso estaría muy bien, pero no pido mucho), entre las aplicaciones en el repositorio oficial, seguramente debe haber un ejemplo que use el mismo esquema de instalación para inspirarme.

Al no tener conocimientos de Python ni de ningún otro lenguaje, me resulta muy difícil crear un script sin un ejemplo.

Gracias de antemano.
Avatar de usuario
Federico Bonnier
Mensajes: 24
Inscripción: 23 de junio de 2014 - 10:10
Ubicación: Nantes
Contacto :

18 de junio de 2015 - 14:23

Hola,

creo que el paquete LibreOffice puede ayudarte: http://wapt.tranquil.it/wapt/tis-libreo ... 0_all.wapt.

Detecta si OpenOffice está instalado y, en caso afirmativo, lo desinstala. Lo mismo ocurre con otras versiones de LibreOffice.

Como último recurso, organizamos sesiones de formación de WAPT. :D

- Frédéric
Frédéric Bonnier - Tranquil IT Systems.
Aparece en el mapa de usuarios de WAPT completando el cuestionario.
Descubre nuestra oferta de servicios en Tranquil IT Systems y síguenos en Twitter.
Pasante de FGA
Mensajes: 4
Inscripción: 18 de junio de 2015 - 12:17

19 de junio de 2015 - 10:34

Gracias, me inspiré en la suite LibreOffice en menor medida. Aquí está el código que creé:

Código: Seleccionar todo

# -*- 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+"')
No entiendo muy bien cómo funciona la desinstalación desde la consola.
Notablemente
clave de desinstalación = []
cadena de desinstalación = []

En la documentación, para uninstallstring dice "línea de comandos para iniciar la desinstalación del software". Así que rápidamente agregué:

Código: Seleccionar todo

run(r'"IBM_Notes\IBM_NOTES_CLIENT_9.0.1_WIN_FR.exe" -s -a /s /v"ADDFEATURES=NotesPlugin /qn+"')
Lo intenté entre paréntesis, pero sin éxito.

Para uninstallkey = [], ¿debemos encontrar la clave de registro que nos permite desinstalar el software o WAPT se encarga de recuperarla durante la instalación? He observado que no suele completarse, y lo mismo ocurre con uninstallstring = [], que no siempre se usa.

Gracias por su tiempo.
Pasante de FGA
Mensajes: 4
Inscripción: 18 de junio de 2015 - 12:17

24 de junio de 2015 - 15:33

Lo logré por mi cuenta y finalmente entendí cómo funcionan los paquetes, especialmente la desinstalación mediante el registro.
Aquí está mi guión, quizás sea útil para otros.

Código: Seleccionar todo

# -*- 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+"')
Los programas ZipMail y SwftFile son específicos de las estaciones de trabajo en las que se implementa nuestro software; adapte el script según sus necesidades.
Bloqueado