[GELÖST] Entfernen einer Abhängigkeit in Python

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
Benoit
Nachrichten: 43
Anmeldung: 26. Juni 2023 - 11:52 Uhr
Ort: Tarbes

24. Januar 2024 - 09:52 Uhr

Hallo,

Wapt Enterprise (
Version 2.4.14.143) auf
einem Debian-Server und
Windows 10 auf meinem Rechner zur Paketerstellung.

Ich möchte wissen, ob es möglich ist, ein Paket innerhalb eines Python-Skripts aus seinen Abhängigkeiten zu entfernen.

Beispiel:
A = Bedingung,
B = Paketname,
C = Hostname.
Wenn Bedingung A zutrifft, soll
B aus C entfernt werden.

Ich habe bereits mit `wapt-get` gesucht, aber nichts gefunden.

Vielen Dank im Voraus für Ihre Hilfe.
Zuletzt bearbeitet von Benoit am 24. Januar 2024 um 14:51 Uhr, 1 Mal bearbeitet.
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

24. Januar 2024 - 12:41 Uhr

Hallo Benoit,

Die beste Vorgehensweise in einer solchen Situation ist die Erstellung eines Metapakets, um Abhängigkeiten zu vermeiden. In diesem Fall sind Sie völlig frei und können tun, was Sie wollen

Beispiel :

Code: Alle auswählen

# -*- 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
Nachrichten: 43
Anmeldung: 26. Juni 2023 - 11:52 Uhr
Ort: Tarbes

24. Januar 2024 – 13:11 Uhr

Vielen Dank für Ihre Antwort, aber das ist nicht das, was ich versuche:

Hier ist das Setup, für das ich hier posiere:

Code: Alle auswählen

# -*- 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}")


Ich möchte, dass, wenn "pro" wahr ist, dieses Paket aus den Abhängigkeiten des PCs entfernt wird, für den "pro" wahr ist.
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

24. Januar 2024 – 13:34 Uhr

Hallo Benoit,

Unmöglich, die Abhängigkeit liegt auf Paketebene, daher wird sie zurückkommen...

Sie müssen ein Metapaket für Adobe Reader erstellen:

tis-adboe-reader

und im Paket etwa so:

Code: Alle auswählen

def install():
    if installed_software('adobe reader pro'):
        WAPT.install('tis-adboe-reader-pro')
    else
        WAPT.install('tis-adboe-reader-normal')
Simon
Benoit
Nachrichten: 43
Anmeldung: 26. Juni 2023 - 11:52 Uhr
Ort: Tarbes

24. Januar 2024 – 14:32 Uhr

Vielen Dank für Ihre Antwort.

Wenn ich es richtig verstehe, ist es also nicht möglich, ein Paket über die Kommandozeile aus den Systemabhängigkeiten eines PCs zu entfernen?

Mit freundlichen Grüßen,
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

24. Januar 2024 – 14:44 Uhr

Hallo Benoit,

nein, der PC kann die Pakete nicht bearbeiten (eine Abhängigkeit nicht entfernen), da er deinen privaten Schlüssel nicht besitzt.

Simon
Benoit
Nachrichten: 43
Anmeldung: 26. Juni 2023 - 11:52 Uhr
Ort: Tarbes

24. Januar 2024 – 14:50 Uhr

Vielen Dank für Ihre Antworten
Gesperrt