Hoi,
gibt es eine Möglichkeit debian-Pakete mit distutils (setup.py) zu erstellen? Habe heute lange gesucht und nichts gefunden. Aber vielleicht gibt es etwas freies / "handgeschriebenes" hierzu?
Gruß,
Christian
deb-Pakete mit distutils?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
bdist_deb und easy-deb. Aber von beiden wird eher abgeraten, da gerade der Grund warum DEBs sich ins Systm anpassen dar ist, dass der Entwickler sich auch die Zeit genommen hat, das Paket vernünftig zu paketieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ist zwar vermutlich nach leonidas hinweis auch von abzuraten, aber ich hab mir mit einem kleinen eigenen Projekt beholfen http://www.flyingelephantsoftware.de/pr ... hebox.html
Ich verstehe das nicht ganz. Könntest du das etwas ausführen?Aber von beiden wird eher abgeraten, da gerade der Grund warum DEBs sich ins Systm anpassen dar ist, dass der Entwickler sich auch die Zeit genommen hat, das Paket vernünftig zu paketieren.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Naja, ein Debian-Paket ist nicht einfach ein ar-Archiv mit zwei Tarballs. Wenn man sich den Maint-Guide ansieht, dass das System zum Bauen von DEBs eine recht komplexe infrastruktur bietet, um Pakete so gut wie möglich ins System zu integrieren. Ich glaube nicht, dass automatisch erstellte DEBs so gut an die Debian Policy halten, wie das ein von einem Menschen erstelltes Debian Paket kann, welches von jemandem erstellt ist der Ahnung hat und der es auch regelmäßig pflegt.keppla hat geschrieben:Ich verstehe das nicht ganz. Könntest du das etwas ausführen?Aber von beiden wird eher abgeraten, da gerade der Grund warum DEBs sich ins Systm anpassen dar ist, dass der Entwickler sich auch die Zeit genommen hat, das Paket vernünftig zu paketieren.
Nehmen wir etwa Pakete, die andere Libs mitgeliefert haben, die in Debian paketiert sind. Ein menschlicher Maintainer würde jetzt die zusätzlichen Libs gerauspatchen, um die in Debian gelieferten zu verwenden, dazu noch de Dependencies entsprechend setzen. So exotisch ist das gar nicht, lunar hat das vor gar nicht so langer Zeit mit Gentoo Ebuilds gemacht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hm, bdist_dpkg scheint es auch zu geben: http://svn.python.org/projects/sandbox/ ... st_dpkg.py
Allerdings konnte ich nicht herausfinden, welchen Status es geniesst.
bdist_deb und easy-deb kenne ich beides nicht. Bei meinem System habe ich es auch nicht finden können (Ubuntu 7.10, python 2.5.1) - habe ich irgendwelche Pakete übersehen?
Vielen Dank für die Info und den Link!
Christian
Allerdings konnte ich nicht herausfinden, welchen Status es geniesst.
bdist_deb und easy-deb kenne ich beides nicht. Bei meinem System habe ich es auch nicht finden können (Ubuntu 7.10, python 2.5.1) - habe ich irgendwelche Pakete übersehen?
Vielen Dank für die Info und den Link!
Christian
Nachdem ich jetzt schon etwas länger versuche, meine Pakete halbwegs gemäß dieser Policy zu verpacken, hab ich das Gefühl, dass diese komplexe Infrastruktur etwas zu komplex ist, nämlich, dass es für das gleiche Problem mindestens 3 Arten gibt, wie man es lösen kann.Leonidas hat geschrieben:Naja, ein Debian-Paket ist nicht einfach ein ar-Archiv mit zwei Tarballs. Wenn man sich den Maint-Guide ansieht, dass das System zum Bauen von DEBs eine recht komplexe infrastruktur bietet, um Pakete so gut wie möglich ins System zu integrieren.
Vielleicht stelle ich mich auch etwas dumm an, aber ich habe immer noch keine vernünftige Anleitung gefunden, wie ich mein Pure-Python-Projekt packagen soll. Von dh_python, dh_pysupport, py_central, über "guck dir die sourcen von X an" zu "nutze CDBS" hab ich da alles gefunden.
Ich dachte auch nicht, dass es vollautomatisch erstellt werden sollte, sondern eher, dass man dem Pythonprogrammierer da ein paar einfache Schalter für die setup.py anbietet.Ich glaube nicht, dass automatisch erstellte DEBs so gut an die Debian Policy halten, wie das ein von einem Menschen erstelltes Debian Paket kann, welches von jemandem erstellt ist der Ahnung hat und der es auch regelmäßig pflegt.
Und es ist natürlich schön, wenn sich jemand findet, der ordentlich und regelmäßig die Drecksarbeit macht, aber irgendwie kann ich darauf für meine unbekannten Projekte kaum bauen, und habe schon genug mit dem Projekt selber zu tun, als dass mir ein zweites Projekt (das debianizen) da so günstig erscheint.
Ich meine, es gibt schon jetzt mehr Distributionen als ich kenne, und ich würde auch gerne irgendwann mal RedHat, Suse oder Gentoopakete anbieten, ohne dass das ein Vollzeitjob wird.
Und dass Debian nicht gerade den Ruf der schnellen Truppe hat, bestätigt mich irgendwie etwas in meiner Theorie
Das ist doch etwas, was man (pure python angenommen) mit einem auslesen der setuptools-dependencies und einem mapping von debian-name nach python-name vollautomatisieren könnte, und keinen wertvollen Gehirnschmalz für opfern müsste.Nehmen wir etwa Pakete, die andere Libs mitgeliefert haben, die in Debian paketiert sind. Ein menschlicher Maintainer würde jetzt die zusätzlichen Libs gerauspatchen, um die in Debian gelieferten zu verwenden, dazu noch de Dependencies entsprechend setzen.
Genau deshalb habe ich gefragt und ich finde es gut, daß Du zumindest einen Versuch unternimmst und den Code zur Verfügung stellst.keppla hat geschrieben:Ich dachte auch nicht, dass es vollautomatisch erstellt werden sollte, sondern eher, dass man dem Pythonprogrammierer da ein paar einfache Schalter für die setup.py anbietet.
Doch auch eine weitere Suche im Netz scheint mir nicht zufriedenstellend zu sein. Jetzt muß ich mal überlegen, wie ich das für mein Projekt machen will.
Gruß,
Christian
Mir ist aufgefallen, dass ich noch erwähnen sollte, dass man sich mit
alle schalter anzeigen kann, die bisher implementiert sind, interessant dürften hauptsächlich --debian-depends und --debian-section sein.
(Alle Angaben für den svn-trunk)
Code: Alles auswählen
python setup.py bdist_pysupport --help
(Alle Angaben für den svn-trunk)
wenn du was hast, bitte sag Bescheid, ich versage bei diesem Thema sehr lange, ein Erfolgserlebnis wäre da echt schönDoch auch eine weitere Suche im Netz scheint mir nicht zufriedenstellend zu sein. Jetzt muß ich mal überlegen, wie ich das für mein Projekt machen will.
Wenn einem an Paketierung für viele System gelegen ist, dann wäre es ratsam, sich nach einem öffentlichen Build-Service umzusehen. Das Open-Suse Projekt hat da einen am Laufen, in wie weit der zugänglich ist, weiß ich allerdings nicht.
Gentoo Ebuilds fallen da allerdings ebenso wie Arch Builds aus der Reihe. Das sind keine Pakete, sondern Beschreibungen zum Kompilieren der Software. Für Standard-Pakete, die sich an die Distutils halten, ist sowas schnell erstellt, unter Gentoo sind das nicht mehr als ein dutzend Zeilen.
Gentoo Ebuilds fallen da allerdings ebenso wie Arch Builds aus der Reihe. Das sind keine Pakete, sondern Beschreibungen zum Kompilieren der Software. Für Standard-Pakete, die sich an die Distutils halten, ist sowas schnell erstellt, unter Gentoo sind das nicht mehr als ein dutzend Zeilen.