Kapitel 1. Einstieg, aber richtig!

Inhaltsverzeichnis

1.1. Soziale Dynamik von Debian
1.2. Programme, die zum Entwickeln notwendig sind
1.3. Dokumentation, die zum Entwickeln gebraucht wird
1.4. Wo man Hilfe bekommen kann

Dieses Dokument versucht, einem typischen Debian-Benutzer und zukünftigen Entwickler in einer verständlichen Sprache die Technik der Paketerstellung für Debian beizubringen, begleitet von funktionierenden Beispielen. Ein altes lateinisches Sprichwort lautet: Longum iter est per praecepta, breve et efficax per exempla! (Es ist ein langer Weg mit Regeln, aber ein kurzer und effizienter mit Beispielen!)

Dieses Dokument wurde für die Debian-Veröffentlichung Squeeze aktualisiert. [1]

Eines der Dinge, die Debian zu einer hervorragenden Distribution machen, ist das Paket-System. Obwohl massenhaft Software im Debian-Format vorhanden ist, muss man manchmal auch Software installieren, die nicht in diesem Format vorliegt. Sie fragen sich vermutlich, wie man eigene Pakete erstellt und vielleicht meinen Sie, es sei eine sehr komplizierte Aufgabe. Nun, wenn Sie ein absoluter Linux-Neuling sind, dann ist es wirklich schwierig, aber als Anfänger würden Sie dieses Dokument jetzt nicht lesen. :-) Sie sollten schon ein wenig Kenntnisse über die Unix-Programmierung mitbringen, aber Sie brauchen ganz sicher kein Guru zu sein. [2]

Eines ist wohl sicher: um Debian-Pakete richtig zu bauen und zu warten, brauchen Sie viel Zeit. Schätzen Sie das nicht falsch ein; damit unser System funktioniert, muss der Betreuer sowohl technisch kompetent sein als auch fleißig und sorgfältig arbeiten.

Falls Sie Hilfe beim Erstellen des Pakets brauchen, lesen Sie bitte Abschnitt 1.4, „Wo man Hilfe bekommen kann“.

Neuere Versionen dieses Dokuments sollten immer online über http://www.debian.org/doc/maint-guide/ und in dem Paket maint-guide zu finden sein. Die Übersetzungen sind in Paketen wie beispielsweise maint-guide-es verfügbar. Bitte beachten Sie, dass diese Dokumentation etwas veraltet sein kann.

Da dies eine Anleitung ist, wird bei wichtigen Themen jeder Schritt im Detail erklärt. Teile davon mögen Ihnen irrelevant vorkommen. Haben Sie Geduld! Einige seltene Fälle werden übersprungen und stattdessen werden nur Verweise geliefert, um dieses Dokument nicht zu kompliziert werden zu lassen.

Es folgen einige Beobachtungen über Debians soziale Dynamik. Die Darstellung ist mit der Hoffnung verbunden, dass es Sie für Ihre Arbeit mit Debian vorbereiten wird.

  • Wir sind alle Freiwillige.

    • Sie können anderen nicht vorgeben, was getan werden soll.

    • Sie sollten sich selbst für Ihre Tätigkeit motivieren.

  • Freundliche Zusammenarbeit ist die Triebfeder.

    • Ihr Beitrag sollte andere nicht zu sehr belasten.

    • Ihr Beitrag ist nur wertvoll, wenn andere ihn würdigen.

  • Debian ist keine Schulklasse, in der Sie automatisch vom Lehrer Aufmerksamkeit bekommen.

    • Sie sollten in der Lage sein, viele Sachen selbst zu lernen.

    • Aufmerksamkeit von anderen Freiwilligen ist eine sehr knappe Ressource.

  • Debian verbessert sich ständig.

    • Es wird von Ihnen erwartet, hochqualitative Pakete zu erstellen.

    • Sie sollten sich an Änderungen selbst anpassen.

Es werden gibt mehrere Arten von Personen, die innerhalb von Debian mit verschiedenen Rollen zusammenarbeiten.

  • Ursprünglicher Autor (»upstream author«): Die Person, die das ursprüngliche Programm geschrieben hat.

  • Betreuer des Originalprogramms (»upstream maintainer«): Die Person, die das Programm zurzeit betreut.

  • Betreuer (»maintainer«): Die Person, die ein Debian-Paket des Programms erstellt oder betreut.

  • Sponsor: Eine Person, die Betreuern hilft, Pakete in das offizielle Debian-Paketarchiv hochzuladen (nachdem sie den Inhalt überprüft hat).

  • Mentor: Eine Person, die neuen Betreuern beim Paketieren usw. hilft.

  • Debian-Entwickler (»Debian Developer«, DD): Ein Mitglied des Debian-Projekts mit unbeschränkten Rechten, Pakete in das offizielle Debian-Paketarchiv hochzuladen.

  • Debian-Betreuer (»Debian Maintainer«, DM): Eine Person, die beschränkte Rechte hat, Pakete in das offizielle Debian-Paketarchiv hochzuladen.

Bitte beachten Sie, dass Sie nicht über Nacht offizieller Debian-Entwickler (»Debian Developer«, DD) werden können, weil es dafür mehr als nur technische Fähigkeiten braucht. Bitte lassen Sie sich davon nicht entmutigen. Wenn Ihr Paket für andere nützlich ist, können Sie es entweder als Betreuer über einen Sponsor oder als Debian-Betreuer trotzdem hochladen.

Bitte beachten Sie, dass Sie kein neues Paket erstellen müssen, um offizieller Debian-Entwickler zu werden. Auch Beiträge zu existierenden Paketen können ein Weg sein, offizieller Debian-Entwickler zu werden. Es gibt viele Pakete, die auf einen guten Betreuer warten (siehe Abschnitt 2.2, „Ihr Programm auswählen“).

Da in diesem Dokument nur auf technische Aspekte der Paketierung fokussiert wird, lesen Sie bitte die folgenden Texte, um zu erfahren, wie Debian funktioniert und wie Sie daran mitarbeiten können.

Bevor Sie loslegen können, müssen Sie sicherstellen, dass einige zusätzliche Pakete richtig installiert sind, die für die Entwicklung benötigt werden. Beachten Sie, dass die Liste keine Pakete enthält, die als essential oder required markiert sind - wir gehen davon aus, dass Sie diese schon installiert haben.

Die folgenden Pakete sind in der Standardinstallation von Debian enthalten, also werden Sie sie vermutlich schon haben (und zusätzliche Pakete, von denen diese abhängen). Sie sollten dies dennoch mit aptitude show Paket oder dpkg -s Paket überprüfen.

Das wichtigste Paket, dass auf Ihrem Entwicklungssystem installiert werden sollte, ist das Paket build-essential. Wenn Sie es installieren, wird es andere Pakete hinterherziehen (»pull in«), die für eine grundlegende Build-Umgebung notwendig sind.

Für manche Arten von Paketen ist das alles, was Sie benötigen. Es gibt allerdings noch eine weitere Sammlung von Paketen, die - obwohl sie nicht essenziell für jede Paketerstellung sind - sinnvoll installiert werden können oder sogar von Ihrem Paket benötigt werden:

Die kurzen Erklärungen oben dienen nur dazu, Ihnen eine Einführung in die verschiedenen Pakete zu geben. Bevor Sie weitermachen, lesen Sie bitte die Dokumentation jedes relevanten Programms, auch die, die als Abhängigkeiten installiert wurden wie make, zumindest was die normale Arbeitsweise angeht. Das mag Ihnen am Anfang überflüssig vorkommen, aber schon bald werden Sie sehr froh darüber sein, sich schon vorher informiert zu haben. Falls Sie später gezielte Fragen haben, wird empfohlen, die oben erwähnten Dokumente erneut zu lesen.

Das Folgende sind sehr wichtige Dokumente, die Sie neben diesem Dokument auch lesen sollten:

  • debian-policy - Das Debian Policy Manual (Debian-Richtlinien-Handbuch) beinhalten Beschreibungen der Struktur und des Inhalts des Debian-Archivs, mehrere Besonderheiten des Betriebssystemdesigns, den »Filesystem Hierarchy Standard« (der beschreibt, wo jede Datei und jedes Verzeichnis sein sollte) usw. Das Wichtigste für Sie ist, dass sie die Anforderungen beschreiben, die ein Paket erfüllen muss, um in die Distribution aufgenommen zu werden (lesen Sie die lokalen Kopien /usr/share/doc/debian-policy/policy.pdf.gz und /usr/share/doc/debian-policy/fhs/fhs-2.3.pdf.gz).

  • developers-reference - Die Debian-Entwicklerreferenz beschreibt alle Dinge, die nicht speziell die technischen Details der Paketerstellung betreffen, beispielsweise die Struktur des Archivs, wie man Pakete umbenennt, aufgibt, adoptiert, NMUs durchführt, Fehler verwaltet, gute Pakete erstellt, wie und wo man ins Archiv hochlädt usw. (lesen Sie die lokale Kopie /usr/share/doc/developers-reference/developers-reference.pdf).

Das Folgende sind wichtige Dokumente, die Sie neben diesem Dokument auch lesen sollten:

Falls dieses Dokument einem der oben erwähnten Dokumente widerspricht, dann haben diese Recht. Bitte schreiben Sie einen Fehlerbericht zu dem Paket maint-guide.

Das Folgende ist eine alternative Anleitung, die Sie zusammen mit diesem Dokument auch lesen können:

Bevor Sie sich entschließen, Ihre Frage an einer öffentlichen Stelle zu stellen, lesen Sie bitte die gute Dokumentation.

Sie können Websuchmaschinen effizienter benutzen, indem Sie bei dem Suchausdruck Angaben wie site:lists.debian.org, um den Suchbereich einzuschränken, verwenden.

Das Erstellen eines kleinen Testpakets ist ein guter Weg, um die Details der Paketerstellung zu lernen. Das Untersuchen von existierenden, gut betreuten Paketen ist die beste Art, zu lernen, wie andere Leute Pakete machen.

Falls Sie immer noch Fragen über das Paketieren haben, für die Sie keine Antworten in der verfügbaren Dokumentation und den Web-Ressourcen finden konnten, können Sie diese interaktiv stellen.

Die erfahreneren Debian-Entwickler werden Ihnen gerne helfen, falls Sie nach den verlangten Recherchen Ihre Frage vernünftig formulieren.

Wenn Sie einen Fehlerbericht erhalten (ja, tatsächliche Fehlerberichte!), ist es Zeit für Sie, tiefer in die Debian-Fehlerdatenbank einzusteigen und die dort vorhandene Dokumentation zu lesen, damit Sie mit den Berichten effizient umgehen können. Ich empfehle dringend, die Debian-Entwicklerreferenz, 5.8. »Handling bugs« zu lesen.

Selbst wenn alles gut funktioniert hat, ist es jetzt an der Zeit, mit dem Beten anzufangen. Warum? Weil in wenigen Stunden (oder Tagen) Benutzer überall auf der Welt Ihr Paket verwenden werden, und wenn Sie einen kritischen Fehler gemacht haben, werden Sie von unzähligen verärgerten Debian-Benutzern mit E-Mails überschüttet ... war nur ein Scherz. :-)

Entspannen Sie sich und stellen Sie sich auf Fehlerberichte ein, denn es ist noch viel mehr Arbeit zu erledigen, bevor Ihr Paket vollständig im Einklang mit den Debian-Richtlinien sowie dessen bewährten Verfahren ist (nochmals: lesen Sie die wirkliche Dokumentation für Details). Viel Glück!



[1] In diesem Dokument wird davon ausgegangen, dass Sie ein Squeeze-System oder ein neueres System verwenden. Wenn Sie diesen Text auf einem älteren System (auch einem älteren Ubuntu-System o.ä.) lesen, müssen Sie mindestens die zurückportierten Pakete dpkg und debhelper installieren.

[2] Sie können aus der Debian-Referenz den grundlegenden Umgang mit einem Debian-System lernen. Sie enthält auch einige Hinweise, um etwas über Unix-Programmierung zu lernen.

[3] Es gibt auch einige spezialisierte aber ähnliche Pakete wie dh-make-perl, dh-make-php usw.