Seite 1 von 1

Erstellung von Linux-Paketen

Veröffentlicht: 10. August 2026 – 17:49 Uhr
von gsalin
Hallo,
wir testen gerade WAPT und bedanken uns für dieses Tool! Ich möchte insbesondere Linux-Pakete (Ubuntu 24) erstellen, um interne Tools bereitzustellen.
Ich habe die Dokumentation durchgesehen, finde aber leider nicht die benötigten Informationen. Auf der Seite https://www.wapt.fr/fr/doc/wapt-create- ... y-packagesgibt es zwar Abschnitt 1.3.3 „Packaging simple Linux packages“, dieser ist aber leer.

Ich möchte beispielsweise ein Verbindungsskript mit xfreerdp3 in /usr/local/bin auf einem RDP-Server bereitstellen. Den zugehörigen Launcher möchte ich auf den Desktop aller bestehenden Benutzer kopieren (und für zukünftige Benutzer nach /etc/skel) und das Launcher-Symbol in /usr/share/icons/ ablegen.

Haben Sie vielleicht hilfreiche Ressourcen oder Tipps für mich?

PyScripter ist meines Wissens nach Windows-spezifisch. Gibt es ein Linux-Äquivalent, mit dem ich die verschiedenen Funktionen des Pakets (Installation, Deinstallation usw.) testen kann?

Vielen Dank im Voraus für deine Hilfe,

Gerald.
PS: Ich habe die Konsole auf meinem Ubuntu-24-Rechner mit Hilfe des Administrators installiert, der den WAPT-Server eingerichtet hat (ich weiß nicht, welches Betriebssystem darauf läuft).

Betreff: Erstellen von Linux-Paketen

Veröffentlicht: 11. August 2026 - 09:34 Uhr
von italbot
Hallo,

ja, es ist schade, dass dieser Bereich leer ist. Wir werden überlegen, Beispielpakete für Linux hinzuzufügen.

In der Zwischenzeit empfehle ich Ihnen, diese Seite zu besuchen:

https://www.wapt.fr/fr/doc-2.6/wapt-cre ... lpers.html

Dort finden Sie die verschiedenen Funktionen für die unterschiedlichen Betriebssysteme.

Wenn ich es richtig verstehe, möchten Sie mit Ihrem Paket lediglich Dateien kopieren?

Mit freundlichen Grüßen,

Ingrid

Betreff: Erstellen von Linux-Paketen

Veröffentlicht: 11. August 2026 - 10:36 Uhr
von gsalin
Hallo Ingrid,
Danke für den Link, ich hatte bisher nur die Windows-Hilfen gefunden... Ich habe nicht gründlich genug gesucht ;(
Im Moment möchte ich nur kopieren, aber es sollte sich zu komplexeren Dingen entwickeln (Deb-Installation + Kopieren... aber laut dem Helfer sollte das recht einfach sein) ;))
Okay, ich muss also nur die setup.py-Datei im Installationsprogramm mit Hilfe von Hilfsfunktionen und reinem Python modifizieren

In meinem Fall sähe meine setup.py beispielsweise so aus:

Code: Alle auswählen

from setuphelpers import *
import glob
import os

def install():
    install_apt("freerdp3-x11") #installe xfreerdp3
    install_apt("yad") #installe yad, utilisé dans le script bash ci-dessous
    filecopyto("xfreeRDP3-VM-Windows.sh","/usr/local/bin") #copie l'exécutable dans bin
    filecopyto("xfreeRDP3-VM-Windows.desktop","/etc/skel") #copie le lanceur dans /etc/skel pour le déployer aux nouveaux utilisateurs du poste
    filecopyto("iconXfreeRDP3-VM-Windows.svg","/usr/share/icons/INRAEUbuntuInstall") #copie l'icone du lanceur dans le répertoire d'icone
    for file in glob.glob("/home/*"): #recherche tous les homes directory existant
        print(file)
        if os.path.isdir(file + '/Bureau'): #si le répertoire Bureau existe dans le home, y copie le lanceur
            filecopyto("xfreeRDP3-VM-Windows.desktop",file + '/Bureau')
        elif os.path.isdir(file + '/Desktop'): #si le répertoire Desktop existe dans le home, y copie le lanceur
            filecopyto("xfreeRDP3-VM-Windows.desktop",file + '/Desktop')

def uninstall():
    remove_file("/usr/local/bin/xfreeRDP3-VM-Windows.sh")
    remove_file("/etc/skel/xfreeRDP3-VM-Windows.desktop")
    remove_tree("/usr/share/icons/INRAEUbuntuInstall")
    for file in glob.glob("/home/*"): #recherche tous les homes directory existant
        print(file)
        if os.path.isdir(file + '/Bureau'): #si le répertoire Bureau existe dans le home, y copie le lanceur
            if os.path.isfile(file + '/Bureau/xfreeRDP3-VM-Windows.desktop'):
                remove_file(file + '/Bureau/xfreeRDP3-VM-Windows.desktop')
        elif os.path.isdir(file + '/Desktop'): #si le répertoire Desktop existe dans le home, y copie le lanceur
            if os.path.isfile(file + '/Desktop/xfreeRDP3-VM-Windows.desktop'):
                remove_file(file + '/Desktop/xfreeRDP3-VM-Windows.desktop')
Ich werde das in den nächsten Tagen testen

Betreff: Erstellen von Linux-Paketen

Veröffentlicht: 11. August 2026 - 11:24 Uhr
von italbot
Ja, das klingt angesichts Ihrer Anforderungen recht gut.

Normalerweise können Sie `os.path.isdir()` zu `isdir()` verkürzen, um Code zu sparen.

Viele Grüße,

Ingrid

Betreff: Erstellen von Linux-Paketen

Veröffentlicht: 11. August 2026 - 11:39 Uhr
von gsalin
Tja,
ich konnte nicht widerstehen … ich habe es getestet. Die Installation verlief reibungslos (nach ein paar Korrekturen natürlich … aber die Fehler nach der Bereitstellung in der Konsole zu sehen, war schon ärgerlich).

Ich habe gerade herausgefunden, dass man die Installations- und Deinstallationsskripte lokal unter Linux mit dem Befehl `
sudo wapt-get install myPackage_0-1_ubuntu_PROD-wapt/` testen kann.

Falls Python-Fehler in setup.py auftreten, werden diese vor der Bereitstellung des Pakets erkannt, was die Sache deutlich vereinfacht ;). Das muss das Äquivalent zu PyScripter sein.

Super, es geht voran.

Betreff: Erstellen von Linux-Paketen

Veröffentlicht: 11. August 2026 - 14:01 Uhr
von gsalin
Ich habe ein Berechtigungsproblem mit einer Datei im Verzeichnis `/usr/local/bin`. Benutzer haben keine Ausführungsberechtigung für dieses Skript.
Ich habe in `setuhelpers` keine Methode zur Berechtigungsverwaltung gefunden. Können Sie das bestätigen?

Falls ja, werde ich die Verwendung von Python in Betracht ziehen.

Betreff: Erstellen von Linux-Paketen

Veröffentlicht: 11. August 2026 - 17:09 Uhr
von gsalin
Ich habe reines Python verwendet, um die Berechtigungen zu ändern (os.chmod()). Abschließend

habe ich eine kurze Dokumentation zur Entwicklung eines einfachen Linux-Pakets erstellt. Da die Dateigröße auf 256 KB begrenzt ist, konnte ich sie dieser Nachricht nicht anhängen. Daher hier der Link (gültig bis 15 Tage): https://filesender.renater.fr/?s=downlo ... 5ba491b765.
Ich bin offen für Vorschläge, wie ich diese Datei irgendwo verlinken kann (angepinnter Beitrag oder anderweitig), oder noch besser, sie in die Dokumentation zu integrieren.
Verbesserungsvorschläge nehme ich gerne entgegen. ;)