[RESOLU] Suppression d'une dépendance en python

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
Benoit
Messages : 21
Inscription : 26 juin 2023 - 11:52
Localisation : Tarbes

24 janv. 2024 - 09:52

Bonjour,

wapt entreprise
ver wapt 2.4.14.143
serv = debian
pc de création de paquet = win10

Je voudrais savoir s'il est possible de supprimer un paquet des dépendances dans le script python ?

ex :
A = condition
B = nom de paquet
C = hostname
si condition A est vrai alors :
Supprimer B de C

J'ai cherché avec wapt-get, mais je n'ai pas trouvé.

Je vous remercie par avance pour vos réponses.
Dernière modification par Benoit le 24 janv. 2024 - 14:51, modifié 1 fois.
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1788
Inscription : 10 juil. 2014 - 23:52
Contact :

24 janv. 2024 - 12:41

Bonjour Benoit,

Le mieux dans ce genre de cas c'est de faire un meta paquet et de ne pas faire de dépendance et dans ce cas on est libre de faire ce qu'on veut

exemple :

Code : Tout sélectionner

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

def install():

    hostname = get_computername().lower()


    # Si les 4 dernier caractères du poste sont "prof" alors j'installe Firefox ESR
    if hostname.endswith('prof') :
        WAPT.install('tis-firefox-esr')

    if 'eleves' in hostname :
        if WAPT.is_installed('tis-gestionnote') :
            WAPT.remove('tis-gestionnote')

    if installed_softwares('Mozilla Firefox') :
        WAPT.install('tis-firefox-esr')

    # Si la manufacture du poste est 'innotek GmbH', installer le paquet drivers smp-drivers-for-innotek
    if wmi_info_basic()["System_Information"]["Manufacturer"] == 'innotek GmbH' :
        WAPT.install('tis-drivers-for-innotek')

    unitorga = registry_readstring(HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine', 'Distinguished-Name')
    
    if 'OU=Ordinateur_compta,OU=Ordinateur_administratif,DC=tranquilit,DC=local' in unitorga :
        WAPT.install('tis-libreoffice-stable')


    if 'mongroup' in get_computer_groups():
        WAPT.install('tis-group')

Simon
Benoit
Messages : 21
Inscription : 26 juin 2023 - 11:52
Localisation : Tarbes

24 janv. 2024 - 13:11

Je vous remercie pour votre réponse, mais ce n'est pas ce que je cherche à faire :

Voici le setup pour lequel je pose ici :

Code : Tout sélectionner

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

"""
Script type pour installation d'un exécutable
"""


"""
import module
"""
from setuphelpers import *
import subprocess


"""
déclarations variables
"""
# Indiquez le nom d'affichage du programme
name_app ="Adobe Acrobat"

# Indiquez le nom de l'executable servant à installer le programme
exe = "AcroRdrDCx642300820470_MUI.exe"

# Indiquez le Version du programme
min_version="2023.008.20470"

#varibles pour la mise en place du raccourci si besoin
label= ""
target = r""


silentflags =f'/sAll /rs /msi EULA_ACCEPT=YES '
#uninstall_cmd ="MsiExec.exe /x {AC76BA86-1033-FF00-7760-BC15014EA700} /quiet"
"""
déclaration fonctions
"""
# fonction qui permet d'installer l'application
def install_app():
    try :
        print(f"L'installation de {name_app} est en cours ...")
        install_exe_if_needed(exe,silentflags=silentflags,key='',min_version=min_version)
        print(f"L'application {name_app} a été installée avec succès")

         # commenté les deux lignes ci-dessous avec un '#' si vous n'avez pas besoin de créer un raccourci
        #create_desktop_shortcut(label,target)
        #print(f"Le raccourci {label} a été créer avec succès")
    except Exception as e :
        print(f"L'erreur 1 suivante s'est produite : {e}")



# fonction qui permet de désinstaller l'application
def uninstall():
    try:
        for soft in installed_softwares():
            if name_app in soft['name']:
                if soft['name'] != "Adobe Acrobat 2017" and soft['name'] != "Adobe Acrobat 2020":
                    key= soft['key']
                    uninstall_cmd = f"msiexec /x {key} /quiet"
                    print(f"L'application {name_app} est déjà installée. Elle va être désinstallée.\nMerci de patienter ...")
                    subprocess.run(uninstall_cmd)
                    print(f"L'application {name_app} a été désinstallée avec succès")
                    # commenté les deux lignes ci-dessous avec un '#' si vous n'avez pas besoin de supprimer un raccourci
                    #remove_desktop_shortcut(label)
                    #print(f"Le raccourci {label} a été supprimé avec succès")
                    break
    except Exception as e :
        print(f"L'erreur 2 suivante s'est produite : {e}")


"""
main code
"""


def install():
    try:
        pro = False
        for soft in installed_softwares():            
            if soft['name'] == "Adobe Acrobat 2017" or soft['name'] == "Adobe Acrobat 2020" or soft['name'] == "Adobe Creative Cloud":
                print(f"Une version pro de l'application {name_app} est déjà installée.\nCette version ne sera donc pas déployé sur ce poste")
                pro =True
                break
        if not pro:
            uninstall()
            install_app()            
    except Exception as e :
        print(f"L'erreur 3 suivante s'est produite : {e}")


Je voudrais que si "pro" est vrai alors ce paquet soit supprimé des dépendances du pc pour lequel pro est vrai.
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1788
Inscription : 10 juil. 2014 - 23:52
Contact :

24 janv. 2024 - 13:34

Bonjour Benoit,

Impossible, la dépendance est au niveau du paquet, donc elle reviendra ...

vous devez faire un meta paquet adobe reader:

tis-adboe-reader

et dans le paquet un truc comme ça :

Code : Tout sélectionner

def install():
    if installed_software('adobe reader pro'):
        WAPT.install('tis-adboe-reader-pro')
    else
        WAPT.install('tis-adboe-reader-normal')
Simon
Benoit
Messages : 21
Inscription : 26 juin 2023 - 11:52
Localisation : Tarbes

24 janv. 2024 - 14:32

Je vous remercie pour votre réponse.

Si je comprends bien, il est impossible de supprimer un paquet des dépendances d'un pc en ligne de commande ?

Cdt,
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1788
Inscription : 10 juil. 2014 - 23:52
Contact :

24 janv. 2024 - 14:44

Bonjour Benoit,

Non le pc ne peu pas éditer les paquet (supprimer un dépendance) puisque il n'a votre clé privé.

Simon
Benoit
Messages : 21
Inscription : 26 juin 2023 - 11:52
Localisation : Tarbes

24 janv. 2024 - 14:50

Merci pour vos réponses
Verrouillé