Python Python Programm paketieren (RPM) als Stand-Alone Programm

Falc410

Vice Admiral
Registriert
Juni 2006
Beiträge
6.400
Wir haben einen Monitoring Client in Python geschrieben der nun verteilt werden soll. Derzeit haben wir die ganzen Python (inkl. Start Script) Dateien unter /srv/client abgelegt. Allerdings muss ich nun ein RPM basteln (ist leider Vorgabe).

Jetzt habe ich mir distutils angeschaut und im Prinzip funktioniert das auch, ich habe aber ein paar Probleme. Zum einen sind im RPM auf einmal keine Unterordner mehr drin obwohl die in der .tar.gz noch enthalten sind - das bekomme ich schon noch raus.
Doofer ist es das distutils davon ausgeht, dass die Dateien im Python Path installiert werden sollen. Daraus folgt dann der Pfad: /srv/client/lib/python2.6/site-packages/client

unschön. Kann ich das umgehen?

Warum ich überhaupt distutils benutze und nicht gleich ein RPM baue? Weil ich Abhängigkeiten zu anderen Python Packages habe die es nicht als RPM im offiziellen Repository gibt. Ich hatte die Hoffnung, dass die setuptools dann diese Pakete automatisch nach installieren. Tut es aber nicht. Mir wäre es aber eh lieber wenn ich diese gleich mit ins RPM packen könnte da wir auch auf bestimmte Versionen angewiesen sind. Ist es denn möglich das RPM so zu bauen das virtualenv mit enthalten ist, sowie alle anderen Pakete und das dann automatisch wenn ich die Software über unser Start Skript starte, diese in einer virtualenv läuft, mit meinen Paketen die ich mit ausgeliefert habe? Dazu bräuchte ich ein Tutorial - kennt jemand so eines?
 
Ist Docker keine Option für euch? Ich benutze das gerne für alles Mögliche (auch Python-Projekte). Die runtime ist bei Python-Containern leider etwas fett, aber dafür ist die Trennung absolut sauber.
 
Wäre auch ne Option vielleicht, aber ich benötige im ersten Schritt RPM Pakete. Ist eine komische EU Vorgabe. Ich bin darüber auch nicht glücklich, da wir so im Moment unsere wenigen Ressourcen für so etwas verschwenden.
 
Zurück
Oben