Daniel Stender Selbstständig

Für den Einstieg in die Paketbetreuung eignet es sich auch immer gut, zunächst ein verwaistes Paket zu adoptieren und darin eventuell erst einmal einige einfache Kleinigkeiten auf den neuesten Stand zu bringen, anstatt direkt ein Update einzuarbeiten.

Auch wenn Linux-Distributionen wie Debian auf dem Desktop für Endanwender weiterhin nur eine untergeordnete Rolle spielen, so bestimmen sie in der professionellen IT wie bei Servern, eingebetteten Systemen, bei DevOps und Cloud-Computing schon längst das Geschehen. Entwickler, die ihre Software dort integrieren und vertreiben möchten, sind mit der Schwierigkeit konfrontiert, sich dafür in recht komplizierte Systeme einarbeiten zu müssen. Dieser Artikel zeigt, wie aus Python-Software konforme Debian-Pakete erstellt werden.

„Wozu überhaupt eigene Python-Pakete für Linux-Distributionen? Es gibt doch Pip!“ – so hört man es manchmal. Und in der Tat lässt sich Python-Software auf unterschiedlichen Betriebssystemen meist unkompliziert aus dem offiziellen Python Package Index (PyPI), in dem Applikationen und Bibliotheken gemäß der Empfehlung PEP-438 gesammelt verfügbar sind, einspielen. Allerdings gibt es eine ganze Reihe guter Gründe für eigene Python-Pakete in Debian und den anderen Linux-Distributionen, die sich über die Jahre mit Hunderten davon zu großen, vollständig integrierten Python-Umgebungen entwickelt haben.

Für IT-Administratoren etwa hat das den Vorteil, dass über den eingebauten Paketmanager auf einen Blick ersichtlich ist, welche Software auf einem System installiert ist, ohne den Python-Paketmanager pip zusammen mit denjenigen der anderen Programmiersprachen (RubyGems, Cabal für Haskell usw.) einzeln abfragen (und beherrschen) zu müssen. In der Praxis funktioniert das Installieren aus dem PyPI auch nicht immer reibungslos, denn wenn zum Beispiel Maschinencode-Extensions erzeugt werden müssen, wird es schnell hakelig.

Auf einem Linux-System lassen sich komplexe Toolchains wie aus den Bereichen Deep Learning oder naturwissenschaftliche Python-Software unkompliziert mit einem einzigen Befehl auf den Rechner bekommen (und auch wieder herunter) – und das auch komplett mit allen benötigten Abhängigkeiten über Python hinaus. Das ist sehr komfortabel für Endbenutzer, spielt aber auch eine Rolle, wenn spezielle Instanzen mit bestimmter Python-Software in der Cloud benötigt werden und mit der eingebauten Paketverwaltung unmittelbar und zuverlässig per Fernsteuerung aufgesetzt werden können, ohne dafür aufwändig mit Shell-Skripten hantieren zu müssen.

Linux-Distros sind beliebt bei Programmierern, allerdings benutzen Python-Coder meist lieber virtualisierte Entwicklungsumgebungen, als mit den Debian-Paketen von Bibliotheken zu arbeiten, weil diese in Stable Releases gar nicht oder in Rolling Releases wie Debian Testing laufend aktualisiert beziehungsweise ausgetauscht werden. Die dafür benötigte Software Virtualenv und viele andere Werkzeuge für die Python-Entwicklung sind aber wiederum als Pakete im System verfügbar. Außerdem lassen sich die beiden Vertriebssysteme für Python-Software auch kombinieren.

Debian-Pakete

In Python findet die Installation von Software heutzutage normalerweise mit Distutils bzw. Set-up-Tools statt. Die Bauwerkzeuge von Debian legen sich als zusätzliche Schicht darüber, um daraus Binärpakete (die so heißen, auch wenn sie keinen Binärcode enthalten) zu bekommen. Die Python-Richtlinie gibt vor, dass von Bibliotheken grundsätzlich Pakete jeweils für die Python-2.x- und die -3.x-Laufzeitumgebungen erzeugt werden sollen, die in Debian nebeneinander verfügbar sind.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin 5.17 - "Python"

Alle Infos zum Heft
579808306Python-Software als Debian-Paket aufsetzen
X
- Gib Deinen Standort ein -
- or -