Ich arbeite daran, einige Bibliotheken in Debs mit Distutils zu verpacken.
Vermutlich muss setup.py korrekt konfiguriert sein, ebenso wie die entsprechenden /debian
-Dateien für die deb.
Im Moment sieht das Repository ungefähr so aus:
%Vor% Es wird als eine Abhängigkeit zu anderen Programmen hinzugefügt, damit sie from library_name import liba
ausführen können.
Beim Googling werden zwischen 3 und 5 verschiedene Methoden zur Bereitstellung auf Ubuntu unterschieden, ohne den Ansatz easy_install
; Die Dokumentation scheint weitgehend in Teilen und veraltet zu sein.
Ich möchte insbesondere sicherstellen, dass die Bibliothek unabhängig von der Python-Version im richtigen Systemverzeichnis abgelegt wird. Natürlich kann es auch problemlos deinstalliert oder aufgerüstet werden.
Das Endspiel soll eine Deb auf einem lokalen Server haben, der als Paketabhängigkeit für unsere anderen Programme hinzugefügt wird.
Was ist der kanonische "einfache und unkomplizierte" Weg, dies zu erreichen?
Sie können pkgme
verwenden, um die Debian-Dateien schnell zu erstellen. Soweit ich weiß, im Gegensatz zu anderen ähnlichen Tools wie dh-make
, basiert pkgme
design auf Plugins, was bedeutet, dass wenn Python erkannt wird, die Informationen aus Ihrer setup.py
Datei korrekt extrahiert werden.
Weitere Informationen finden Sie in diesem letzten Gespräch im Ubuntu Developer Week Event.
Ich habe schon früher mit Python-Paketen für Ubuntu / Debian gekämpft, und ich stimme zu, die Dokumente sind ein Chaos / nicht existent / irreführend: Sie brauchen wirklich eine Schnellstartanleitung für die einfachste mögliche Situation.
Nun, hier ist es!
Installieren Sie Ihre Werkzeuge. Dies könnte jedoch zu viel werden:
%Vor% Beginnen Sie mit Ihrem Code ausgecheckt in ein Verzeichnis namens $packagename-$version
, wie library_name-0.6.0/
und cd
auf dieses Verzeichnis. Führen Sie etwas wie dh_make -i -c gpl3 -e [email protected]
(siehe dh_make --help
für andere Optionen). Wenn alles gut geht, werden Sie keine Fehler bekommen, und es wird eine Ladung von Dateien in ./debian
erstellen. Sie können ./debian/*.{ex,EX}
ignorieren oder löschen. Das sind nur Beispiele.
Sie sollten wahrscheinlich alle diese Dateien irgendwann untersuchen, aber mindestens brauchen , um ./debian/control
und ./debian/rules
zu bearbeiten. Sie sollten alle Template-Felder im Steuerelement ausfüllen, nämlich Description
und Homepage
. Ändern Sie die Package
-Zeile in python-$libname
Ändern Sie Ihre Depends
-Zeile in control
auf diese:
Er stellt sicher, dass unser Binärpaket python-$libname
von den benötigten Python-Versionen abhängt. ( ${python:Depends} is a "substvar"; they're created when we build; you can inspect their values after your first build in
. / debian / $ Paketname Untervaren '.)
Ändere die Zeile in rules
von dh $@
in dh $@ --with python2
und behalte die Registerkarte an der Vorderseite (es ist ein Makefile). Dies führt dazu, dass Debhelper sein python2-Addon verwendet; Der Standard ist weiterhin pysupport (was veraltet ist, erinnern Sie sich?).
Führen Sie anschließend den folgenden Befehl im Quellstammverzeichnis aus:
%Vor%Dadurch wird das Paket erstellt, ohne es zu signieren (etwas, das Sie später lernen sollten!). Sie sollten einige vertraute setuptools Zeilen sehen (zweimal: einmal für 2.6, einmal für 2.7), Stapel von dh_ Addons und andere Gebäude. Am Ende ist die Ausgabe von Lintian, die einige allgemeine Verpackungsprobleme erkennen kann; Sie sollten diese beheben. Viele der Dinge, über die Lintian und Freunde sich beschweren, sind nur die Einhaltung der Verpackungsregeln, und wenn deine Libs nur intern sind, kannst du sie locker spielen.
Übrigens Diese Seite spricht über die Vernachlässigung von python-support
und python-central