Hey zusammen,
nachdem ich bereits sehr viel Erfahrung mit der Programmierung von Python gestüzten Programmen (Shell und GUI) gemacht habe, ist es Zeit, diese auch ordentlich anzubieten. Ich möchte meine Programme meinen Kollegen so anbieten, dass diese das Paket mühelos installieren können. Dazu möchte ich das Programm am liebsten als .deb Paket anbieten. Ich habe bereits sehr viele Tutorials betrachtet und mich auch auf ubuntuusers schlau gemacht.
Leider scheitere ich aber dabei und möchte euch nun fragen ob der ein oder andere eine Anleitung gescheite besitzt, oder ein anderes Packageformat vielleicht besser wäre. Allternativ kann man sich auch mal zusammensetzen.
Gruß Jason
Python Programme packetieren (.deb)
-
Jason2111 -
16. Juli 2023 um 21:38 -
Erledigt
-
-
Ich habe früher relativ viel paketiert und kann dir dabei sicherlich helfen.
Ich würde aber direkt empfehlen, ein Flatpak (wenn grafische Oberfläche vorhanden) oder ein Snap daraus zu machen -> das kannst du universeller anbieten.
Gerade Python ist ja relativ mühsam mit den Abhängigkeiten. Gerade bei Ubuntu 20.04 wird (wenn ich es im Kopf habe) standardmässig noch python2 mitgeliefert und python3 optional in einer relativ alten Version.
Hier kannst du dann das Pech haben, dass du quasi alleine für Ubuntu mehrere unterschiedliche DEBs erstellen musst.
Wenn dir DEB lieber als Flatpak oder Snap ist, würde ich überlegen direkt ein PPA zu erstellen. Dort kannst du das Paket mit unterschiedlichen Abhängigkeiten bauen und als Repository anbieten.
-
Hey,
leider darf ich die Programme nicht öffentlich zur Verfügung stellen. Deswegen muss ich eine Lösung in betracht ziehen, welche rein Local angeboten werden kann. geht das bei Flatpack und Snap?
Wegen der Python Version muss man sich keine Sorgen machen. Die Clients werden von unserem Admin verwaltet und dieser hat mich versichert, dass eine aktuellere Python 3 Version vorhanden ist.
Ein Repository finde ich etwas Übertrieben. Ich stelle nicht viele Programme bereit und die, welche ich bereitstelle, sind Spezialanwendungen für < 3 Personen.
Kann man da einen guten Way-to-go herauslesen? -
Wobei scheiterst du denn genau? Ich hatte das selbe Problem und dann hat mir der Hauke seine zwei Videos dazu gezeigt und dann hats geklappt.
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Achso das ändert die Sache, ich dachte es ist etwas das du einfach in das breite Internet stellen willst.
Wenn es exklusiv administrierte Clients sind, macht ein DEB definitiv Sinn. Min. Snap kann man auch lokal anbieten (Flatpak kenne ich mich weniger aus) - aber denke ein DEB ohne Repository reicht da.
Der einfachste Weg dürfte wahrscheinlich "stdeb" sein.
Mit
Kannst du stdeb installieren.
Danach in deinem Projektverzeichnis:
Wenn da durchgelaufen ist solltest du einen neuen Ordner im Verzeichnis mit dem Namen "deb_dist" haben.
Dann per cd in diesen Ordner navigieren
Und dort dann mit DPKG das DEB Paket bauen:
Hie rmusst du dich eventuell mit deinem Administrator absprechen. Die Parameter -uc -us stehen für "unsignes changelog" und "unsigned source". Bedeuten die Pakete werden nicht mit einem PGP Schlüssel signiert.
Es kann sein das eure interne IT solche Pakete signiert haben will, dann musst entsprechend Schlüssel erstellen, der IT den Public Key geben und das Paket mit deinem KEY signieren. Aber um einfach mal ein DEB zu bekommen sollte das reichen..
Mehr zu stdeb: inkl. Dokumentation und zusätzlichen Parametern: https://pypi.org/project/stdeb/
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!