4. Ressourcen für Debian Mitglieder

In diesem Kapitel finden Sie eine sehr kurze Roadmap der Debian-Mailinglisten, der Debian-Maschinen, die Ihnen als Mitglied zur Verfügung stehen, und aller anderen Ressourcen, die Ihnen bei Ihrer Arbeit zur Verfügung stehen.

4.1. Mailinglisten

Viele Unterhaltungen zwischen Debian-Entwicklern (und Anwendern) laufen über ein weites Feld von Mailinglisten, die auf lists.debian.org untergebracht sind. Mehr darüber, wie Sie diese Listen abonnieren oder abbestellen können, wie Sie Nachrichten abschicken, wo Sie alte Nachrichten finden und suchen können, wie Sie Listenbetreuer kontaktieren können sowie verschiedene sonstige Informationen über Mailinglisten erfahren finden Sie auf https://www.debian.org/MailingLists/. Dieser Abschnitt wird nur die Gesichtspunkte der Mailinglisten aufzeigen, die von besonderem Interesse für Entwickler sind.

4.1.1. Grundregeln für die Benutzung

Wenn Sie auf Nachrichten auf der Mailingliste antworten, senden Sie bitte keine Kopie (CC) an den ursprünglichen Verfasser, außer, wenn dieser explizit darum bittet. Jeder, der an eine Mailingliste schreibt, sollte sie lesen, um die Antworten zu sehen.

Kreuzversand (die gleiche Nachricht an mehrere Listen senden) ist unerwünscht. Kürzen Sie, wie immer im Netz, die Zitate von Artikeln, auf die Sie antworten. Halten Sie sich bitte an die allgemeinen Gepflogenheiten beim Versand von Nachrichten.

Bitte lesen Sie den Leitfaden, um weitere Informationen zu erhalten. Die Debian Community Guidelines sind es ebenfalls wert, gelesen zu werden.

4.1.2. Haupt-Entwickler-Mailinglisten

Die Haupt-Debian-Mailinglisten, die Entwickler nutzen sollten, sind:

  • debian-devel-announce@lists.debian.org, wird benutzt, um Entwicklern wichtige Dinge anzukündigen. Es wird von allen Entwicklern erwartet, dass sie diese Liste abonnieren.

  • debian-devel@lists.debian.org, wird benutzt, um über verschiedene entwicklungsbezogene technische Themen zu reden.

  • debian-policy@lists.debian.org, wird benutzt, um über die Debian-Richtlinien zu diskutieren und darüber abzustimmen.

  • debian-project@lists.debian.org, wird benutzt, um über verschiedene entwicklungsbezogene, nicht technische Themen zu reden.

Es sind weitere Mailinglisten für unterschiedliche spezielle Themen verfügbar. Eine Liste finden Sie unter https://lists.debian.org/.

4.1.3. Spezielle Listen

debian-private@lists.debian.org ist eine besondere Mailingliste für private Unterhaltungen zwischen Debian-Entwicklern. Das heißt, sie sollte benutzt werden, um über Dinge zu reden, die aus irgend einem Grund nicht veröffentlicht werden sollen. Eigentlich ist es eine Liste mit geringem Umfang und Benutzer werden angehalten, debian-private@lists.debian.org nicht zu benutzen, so lange es nicht wirklich nötig ist. Leiten Sie außerdem keine E-Mail von dieser Liste an jemanden weiter. Es sind aus naheliegenden Gründen keine Archive dieser Liste im Web verfügbar, aber Sie können sie sehen, indem Sie Ihr Shell-Konto auf master.debian.org benutzen und in das Verzeichnis ~debian/archive/debian-private/ schauen.

debian-email@lists.debian.org ist eine besondere Mailingliste, die als Wundertüte für Debian-bezogene Korrespondenz, wie den Kontakt zu ursprünglichen Autoren über Lizenzen, Fehler, etc. oder Diskussionen über das Projekt mit anderen benutzt wird, wobei es nützlich sein könnte, dass die Diskussion irgendwo archiviert wird.

4.2. IRC-Kanäle

Mehrere IRC-Kanäle sind für die Entwicklung von Debian bestimmt. Sie werden hauptsächlich auf dem Open and free technology community (OFTC)-Netzwerk gehostet. Der DNS-Eintrag irc.debian.org ist ein Alias für irc.oftc.net.

Der Hauptkanal für Debian ist im Allgemeinen #debian. Dies ist ein großer Kanal für allgemeine Zwecke, auf dem Benutzer aktuelle Neuigkeiten im Inhalt finden, der von Robotern bereitgestellt wird. #debian ist für englischsprachige Nutzer. Es gibt auch #debian.de, #debian-fr, #debian-br und andere Kanäle mit ähnlichen Namen für anderssprachige Nutzer.

Der Hauptkanal für die Debian-Entwicklung ist #debian-devel. Es ist ein sehr aktiver Kanal; es werden normalerweise mindestens 150 Leute zu jeder Tageszeit dort sein. Es ist ein Kanal für Leute, die an Debian arbeiten, es ist kein Support-Kanal (dafür gibt es #debian). Das Themengebiet enthält normalerweise interessante Informationen für Entwickler.

Da #debian-devel ein offener Kanal ist, sollten Sie dort nicht über Probleme sprechen, die in debian-private@lists.debian.org diskutiert werden. Es gibt einen anderen Kanal für diesen Zweck. Er heißt #debian-private und ist durch einen Schlüssel geschützt. Dieser Schlüssel ist unter master.debian.org:~debian/misc/irc-password verfügbar.

Es gibt andere zusätzliche Kanäle, die besonderen Themen gewidmet sind. #debian-bugs wird für die Koordination von Bug-Squashing-Parties benutzt. #debian-boot wird benutzt, um die Arbeit am Debian-Installationsprogramm zu koordinieren. #debian-doc wird gelegentlich benutzt, um über die Dokumentation zu reden, wie beispielsweise über das Dokument was Sie aktuell gerade lesen. Andere Kanäle beschäftigen sich mit einer Architektur oder einer Zusammenstellung von Paketen: #debian-kde, #debian-dpkg, #debian-perl, #debian-python...

Es existieren außerdem einige nicht englische Entwicklerkanäle, zum Beispiel #debian-devel-fr für französchischsprachige Leute, die an der Entwicklung von Debian interessiert sind.

Speziell Debian gewidmete Kanäle gibt es auch in anderen IRC-Netzwerken.

4.3. Dokumentation

Dieses Dokument enthält viele Informationen, die für Debian-Entwickler nützlich sind, es kann aber auch nicht alles enthalten. Die meisten anderen interessanten Dokumente sind in der Entwickler-Ecke verlinkt. Nehmen Sie sich die Zeit alle diese Verweise zu durchstöbern – Sie werden viele weitere Dinge lernen.

4.4. Debian-Maschinen

Debian hat mehrere Computer, die als Server fungieren, die meisten davon, um kritische Funktionen für das Debian-Projekt bereitzustellen. Die meisten dieser Maschinen werden für Portierungzwecke benutzt und alle haben eine permanente Verbindung ins Internet.

Einige der Maschinen stehen einzelnen Entwicklern so lange zur Verfügung, wie die Entwickler die Regeln befolgen, die in den Debian-Rechner Benutzungsrichtlinien festgelegt wurden.

Allgemein gesprochen können Sie diese Maschinen nach Belieben für Debian-bezogene Zwecke nutzen. Bitte seien Sie freundlich zu den Systemadministratoren und verbrauchen Sie nicht massenhaft Plattenplatz, Netzwerk-Bandbreite oder CPU, ohne zuerst die Zustimmung der Systemadministratoren eingeholt zu haben. Üblicherweise werden diese Maschinen von Freiwilligen betrieben.

Bitte achten Sie darauf, Ihre Debian-Passwörter und SSH-Schlüssel, die auf Debian-Maschinen installiert sind, zu schützen. Vermeiden Sie Methoden zum Anmelden oder Hochladen, die Passwörter unverschlüsselt über das Internet übertragen, wie Telnet, FTP, POP, etc.

Bitte legen Sie kein Material auf Debian-Servern ab, das keinen Bezug zu Debian hat, nicht einmal, wenn Sie eine vorrangige Berechtigung haben.

Die aktuelle Liste von Debian-Maschinen ist unter https://db.debian.org/machines.cgi verfügbar. Diese Web-Seite enthält Maschinennamen, Kontaktinformationen darüber, wer sich anmelden kann, SSH-Schlüssel etc.

Falls Sie ein Problem mit einer Transaktion auf einem Debian-Server haben und der Ansicht sind, dass die Systemverwalter über dieses Problem informiert werden sollten, können Sie die Liste offener Probleme in der Warteschlange des DSA-Teams (Debian System Administration) vom Request Tracker unter https://rt.debian.org/ prüfen (Sie können sich als Benutzer "debian" anmelden, dessen Passwort ist unter master.debian.org:~debian/misc/rt-password verfügbar). Um ein neues Problem zu melden, senden Sie einfach eine E-Mail an admin@rt.debian.org und stellen Sie sicher, dass der Betreff die Zeichenkette "Debian RT" enthält. Um das DSA-Team per E-Mail zu kontaktieren, verwenden Sie für alles, was private oder vertrauliche Informationen enthält und die nicht veröffentlicht werden soll die Adresse dsa@debian.org, für alles andere benutzen Sie bitte debian-admin@lists.debian.org. Das DSA-Team ist auch auf dem IRC-Kanal #debian-admin im OFTC erreichbar.

Falls Sie ein Problem mit einem bestimmten Dienst haben, der sich nicht auf die Systemadministration bezieht (wie beispielsweise Pakete, die aus dem Archiv entfernt werden sollen, Vorschläge für die Website, etc.) schreiben Sie einen Fehlerbericht zu einem "Pseudo-Paket". Informationen darüber, wie Sie Fehlerberichte versenden, finden Sie unter Fehler berichten.

Einige der Hauptserver werden eingeschränkt, aber die Informationen von dort werden auf einen anderen Server gespiegelt.

4.4.1. Der Bug-Tracking-Server

bugs.debian.org ist der anerkannte Ort für die Fehlerdatenbank, das BTS (Bug Tracking System).

Falls Sie statistische Auswertungen oder Verarbeitungen von Debian-Fehlern planen, wäre dies der richtige Ort dafür. Bitte schildern Sie indes Ihre Pläne auf debian-devel@lists.debian.org bevor Sie etwas implementieren, um unnötige Doppelarbeit oder vergeudete Ausführungszeit zu vermeiden.

4.4.2. Der FTP-Master-Server

Auf dem Server ftp-master.debian.org liegt die autorisierte Kopie des Debian-Archivs. Generell landen nach ftp.upload.debian.org hochgeladene Pakete auf diesem Server, siehe Ein Paket hochladen.

Dieser Server ist einer wie oben erwähnt einer der eingeschränkten Server; ein Spiegel ist auf mirror.ftp-master.debian.org verfügbar.

Probleme mit dem Debian-Archiv müssen generell als Fehler des Pseudo-Pakets ftp.debian.org oder per E-Mail an ftpmaster@debian.org gemeldet werden, aber sehen Sie sich auch die Vorgehensweisen in Verschieben, Entfernen, Verwaisen, Adoptieren und Wiedereinführen von Paketen an.

4.4.3. Der WWW-Master-Server

Der Haupt-Webserver ist www-master.debian.org. Auf ihm liegen die offiziellen Web-Seiten, für die meisten Neulinge "das Gesicht von Debian".

Falls Sie ein Problem mit dem Debian-Webserver finden, sollten Sie generell einen Fehlerbericht an das Pseudo-Paket www.debian.org senden. Denken Sie daran zu prüfen, ob bereits sonst jemand dieses Problem an die Fehlerdatenbank gemeldet hat.

4.4.4. Der people-Webserver

people.debian.org ist der Server, der für die eigenen Web-Seiten der Entwickler über alles Mögliche mit Bezug zu Debian benutzt wird.

Falls Sie Debian spezifische Informationen haben, die Sie im Web bereitstellen möchten, können Sie dies realisieren, indem Sie das Material im Verzeichnis public_html in Ihrem Home-Verzeichnis auf people.debian.org ablegen. Es kann über die URL https://people.debian.org/~Ihre-Benutzer-ID/ darauf zugegriffen werden.

Sie sollten nur diesen besonderen Ort benutzen, da Datensicherungen davon erstellt werden, was auf anderen Rechnern nicht der Fall wäre.

Der einzige Grund, andere Rechner zu benutzen, ist üblicherweise, wenn Sie Materialien veröffentlichen möchten, die den U.S.-Exportbeschränkungen unterliegen. In diesem Fall können Sie Server benutzen, die sich außerhalb der Vereinigten Staaten befinden.

Senden Sie eine E-Mail an debian-devel@lists.debian.org, falls Sie Fragen haben.

4.4.5. salsa.debian.org: Git Depots und kollaborative Entwicklungsplattform

Wenn Sie ein Git-Repository für eine Ihrer Debian-Arbeiten verwenden möchten, können Sie zu diesem Zweck die GitLab-Instanz von Debian mit dem Namen Salsa verwenden. GitLab bietet auch die Möglichkeit, Zusammenführungsanfragen, Wiki-Seiten, Bug-Tracker und viele andere Dienste sowie eine detaillierte Optimierung der Zugriffsberechtigungen bereitzustellen, um die Zusammenarbeit an Projekten zu unterstützen.

Für mehr Informationen besuchen Sie bitte https://wiki.debian.org/Salsa/Doc.

4.4.6. GitHub.com: Senden von Pull-Anfragen an Upstream-Repositorys

Sollte ein Upstream-Repository auf GitHub.com beheimatet sein dann kann die Debian Organisation benutzt werden um einen Fork des Repository für Pull-Requests an das Upstream-Projekt erstellen zu können.

Die Organisation ist offen für alle Debian Mitglieder. Um eine Mitgliedschaft zu beantragen muss ein Issue im Debian/.github Meta Repository erstellt werden.

4.4.7. Chroots auf andere Distributionen

Auf einigen Maschinen sind Chroots für unterschiedliche Distributionen verfügbar. Sie können sie wie folgt nutzen:

vore$ dchroot unstable
Executing shell in chroot: /org/vore.debian.org/chroots/user/unstable

In allen Chroots sind die normalen Home-Verzeichnisse der Benutzer verfügbar. Sie können mittels https://db.debian.org/machines.cgi herausfinden, welche Chroots verfügbar sind.

4.5. Die Entwicklerdatenbank

Die Entwicklerdatenbank unter https://db.debian.org/ ist ein LDAP-Verzeichnis zur Verwaltung von Debian-Entwicklereigenschaften. Sie können diese Ressource benutzen, um eine Liste der Debian-Entwickler zu durchsuchen. Ein Teil dieser Informationen ist auch durch den Dienst "finger" auf Debian-Servern verfügbar. Versuchen Sie finger ihr-benutzername@db.debian.org, um zu sehen, was er berichtet.

Entwickler können sich in der Datenbank anmelden, um verschiedene Informationen über sich selbst zu ändern, wie beispielsweise:

  • Die Einstellungen der Weiterleitung ihrer debian.org E-Mail-Adresse als auch das Behandeln von Spam. Siehe https://db.debian.org/forward.html für eine Beschreibung aller Optionen.

  • Die Anmeldung zu debian-private

  • Ob Sie in Urlaub sind

  • Persönliche Informationen, wie Ihre Adresse, das Land, Längen- und Breitengrad Ihres Wohnortes für die Weltkarte der Entwickler, Telefon- und Faxnummern, IRC-Nickname und Homepage

  • Passwort und bevorzugte Shell auf Maschinen des Debian-Projekts

Natürlich kann nicht auf die meisten der Informationen durch die Öffentlichkeit zugegriffen werden. Lesen Sie für weitere Informationen die Dokumentation unter https://db.debian.org/doc-general.html.

Entwickler können auch ihre SSH-Schlüssel senden, die für die Authentifizierung auf den offiziellen Debian-Maschinen benutzt werden und sogar neue *.debian.net-DNS-Einträge hinzufügen. Diese Funktionen sind unter https://db.debian.org/doc-mail.html dokumentiert.

4.6. Das Debian-Archiv

Die Distribution Debian besteht aus vielen Paketen (aktuell rund 30000 Quellpakete) und ein paar zusätzlichen Dateien (wie beispielsweise Dokumentation und Images von Installationsmedien).

Hier ist ein Beispielverzeichnisbaum eines kompletten Debian-Archivs:

dists/stable/main/
dists/stable/main/binary-amd64/
dists/stable/main/binary-armel/
dists/stable/main/binary-i386/
     ...
dists/stable/main/source/
     ...
dists/stable/main/disks-amd64/
dists/stable/main/disks-armel/
dists/stable/main/disks-i386/
     ...

dists/stable/contrib/
dists/stable/contrib/binary-amd64/
dists/stable/contrib/binary-armel/
dists/stable/contrib/binary-i386/
     ...
dists/stable/contrib/source/

dists/stable/non-free/
dists/stable/non-free/binary-amd64/
dists/stable/non-free/binary-armel/
dists/stable/non-free/binary-i386/
     ...
dists/stable/non-free/source/

dists/stable/non-free-firmware/
dists/stable/non-free-firmware/binary-amd64/
dists/stable/non-free-firmware/binary-armel/
dists/stable/non-free-firmware/binary-i386/
     ...
dists/stable/non-free-firmware/source/

dists/testing/
dists/testing/main/
     ...
dists/testing/contrib/
     ...
dists/testing/non-free/
     ...
dists/testing/non-free-firmware/
     ...

dists/unstable
dists/unstable/main/
     ...
dists/unstable/contrib/
     ...
dists/unstable/non-free/
     ...
dists/unstable/non-free-firmware/
     ...

pool/
pool/main/a/
pool/main/a/apt/
     ...
pool/main/b/
pool/main/b/bash/
     ...
pool/main/liba/
pool/main/liba/libalias-perl/
     ...
pool/main/m/
pool/main/m/mailx/
     ...
pool/non-free/d/
pool/non-free/d/doc-rfc/
     ...
pool/non-free-firmware/f/
pool/non-free-firmware/f/firmware-nonfree/
     ...

Wie Sie sehen können, enthält das Verzeichnis auf der obersten Ebene die beiden Verzeichnisse dists/ und pool/. Letzteres ist ein "Pool", in dem sich die Pakete derzeit befinden. Er wird von der Archiv-Verwaltungsdatenbank und den beiliegenden Programmen gehandhabt. Ersteres enthält die Distributionen stable, testing und unstable. Die Dateien Packages und Sources in den Distributions-Unterverzeichnissen können auf Dateien im Verzeichnis pool/ verweisen. Der Verzeichnisbaum unterhalb jeder Distribution ist auf die gleiche Art angeordnet. Was im Folgenden für stable beschrieben wird, ist gleichermaßen auf die Distributionen unstable und testing anwendbar.

dists/stable enthält drei Verzeichnisse, nämlich main, contrib und non-free und non-free-firmware.

In jedem Bereich gibt es ein Verzeichnis für Quellpakete (source) und ein Verzeichnis für jede unterstützte Architektur (binary-i386, binary-amd64, etc.).

Der Bereich main enthält zusätzliche Verzeichnisse, die die Medien-Images und einige notwendige Teile der Dokumentation, die zum Installieren der Debian-Distribution auf einer speziellen Architektur (disks-i386, disks-amd64, etc.) benötigt werden.

4.6.1. Bereiche

Der Bereich main des Debian-Archivs ist das, was die offizielle Debian-Distribution ausmacht. Der Bereich main ist offiziell, da er alle Richtlinien vollständig erfüllt. Bei den beiden anderen Abschnitten ist dies zu einem unterschiedlichen Grad nicht der Fall. Von daher sind sie nicht offizieller Teil von Debian.

Jedes Paket im Bereich "main" muss vollständig die Debian-Richtlinien für Freie Software (DFSG) erfüllen sowie alle anderen Anforderungen des Regelwerks, das im Debian Policy Manual beschrieben wurde. Die DFSG sind Debians Definition von "freier Software". Prüfen Sie das Debian Policy Manual für Details.

Pakete im Bereich contrib müssen den DFSG entsprechen, könnten aber an anderen Anforderungen scheitern. Zum Beispiel könnten sie von unfreien Paketen abhängen.

Pakete die nicht die DFSG erfüllen, werden in den Bereich non-free oder non-free-firmware platziert. Diese Pakete werden nicht als Teil der Debian-Distribution betrachtet, obwohl ihre Benutzung ermöglicht und die Infrastruktur (wie die Fehlerdatenbank und die Mailinglisten) für unfreie Pakete bereitgestellt wird.

Das Debian Policy Manual enthält eine genauere Definition dieser vier Bereiche. Die vorhergehende Erläuterung ist nur eine Einführung.

Die Unterteilung in vier Bereiche auf der obersten Ebene des Archivs ist für all die Leute wichtig, die Debian weitergeben möchten, entweder über FTP-Server im Internet oder auf CD-ROMs: Rechtliche Risiken können vermieden werden, wenn nur die Abschnitte main und contrib weitergegeben werden. Einige Pakete im Bereich non-free erlauben zum Beispiel keine kommerzielle Weitergabe.

Andererseits könnte ein CD-ROM-Verkäufer die einzelnen Paketlizenzen der Pakete in non-free leicht prüfen und seinen CD-ROMs so viele wie erlaubt hinzufügen. (Da dies von Verkäufer zu Verkäufer stark variiert, können Debian-Entwickler diese Arbeit nicht erledigen.)

Beachten Sie, dass der Begriff Bereich auch im Bezug auf Kategorien benutzt wird, um die Organisation und das Durchstöbern verfügbarer Pakete zu vereinfachen, z.B. admin, net, utils etc. Diese Bereiche (eher Unterbereiche) existierten irgendwann einmal in der Form von Unterverzeichnissen innerhalb des Debian-Archivs. Heutzutage existieren sie nur noch in den "Section"-Kopfzeilenfeldern der Pakete.

4.6.2. Architekturen

In den Anfangstagen war der Linux-Kernel und somit Debian nur für die Intel-i386-Plattformen (oder höher) verfügbar. Aber als Linux zunehmend populärer wurde, wurde der Kernel auf andere Architekturen portiert und Debian begann, diese zu unterstützen. Und als ob die Unterstüzung so viel verschiedener Hardware noch nicht genug wäre, entschied Debian, einige Portierungen zu erstellen, die auf anderen Unix-Kerneln beruhten, wie hurd und kfreebsd.

Debian GNU/Linux 1.3 war nur für i386 verfügbar. Debian 2.0 wurde für die Architekturen i386 und m68k ausgegeben. Debian 2.1 kam für die Architekturen i386, m68k, alpha und sparc heraus. Seither ist Debian enorm gewachsen. Debian 9 unterstützt im Ganzen zehn Linux-Architekturen (amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el und s390x) sowie zwei kFreeBSD-Architekturen (kfreebsd-i386 und kfreebsd-amd64).

Informationen für Entwickler und Anwender über die spezifischen Portierung sind auf der Debian-Webseite Portierungen verfügbar.

4.6.3. Pakete

Es gibt zwei Typen von Debian-Paketen, nämlich source- und binary-Pakete.

Abhängig vom Format des Quellpakets wird es aus einem oder mehreren Dateien zusätzlich zur zwingend notwendigen .dsc-Datei bestehen:

  • Mit Format "1.0" hat es entweder eine .tar.gz-Datei oder sowohl eine .orig.tar.gz- als auch eine .diff.gz-Datei;

  • Mit Format "3.0" (quilt), hat es zwingend eine Tarball-Archivdatei von Upstream mit der Endung .orig.tar.{gz,bz2,xz}, optional mehrere .orig-Komponente.tar.{gz,bz2,xz}-Debian-Tarball-Archive;

  • Mit Format "3.0" (nativ) hat es nur eine einzelne .tar.{gz,bz2,xz}-Tarball-Archivdatei.

Falls das Paket speziell für Debian entwickelt wurde und nicht außerhalb von Debian verteilt wird, gibt es dort nur eine .tar.{gz,bz2,xz}-Datei, die den Quellcode des Programms enthält, welches dann "natives" Quellpaket genannt wird. Falls ein Paket auch anderswo verteilt wird, wird in der .orig.tar.{gz,bz2,xz}-Datei der sogenannte Upstream Source Code gespeichert, das ist der Quellcode vom Upstream Maintainer (oft dem Autor der Software). In diesem Fall enthalten die Dateien .diff.gz oder debian.tar.{gz,bz2,xz} die Änderungen, die durch den Debian-Betreuer vorgenommen wurden.

Die .dsc-Datei listet alle Dateien im Quellpaket auf, zusammen mit den Prüfsummen (md5sums, sha1sums, sha256sums) und einigen zusätzlichen Informationen über das Paket (Betreuer, Version etc.).

4.6.4. Distributionen

Das im vorherigen Kapitel beschriebene Verzeichnissystem ist selbst innerhalb der distribution directories enthalten. Jede Distribution ist letztlich im Verzeichnis pool in der obersten Ebene des Debian-Archivs selbst enthalten.

Zusammenfassend gesagt hat das Debian-Archiv ein Wurzelverzeichnis auf einem FTP-Server. Auf der Spiegel-Seite ftp.us.debian.org ist beispielsweise das Debian-Archiv selbst in /debian enthalten, was ein gebräuchlicher Ort dafür ist (ein anderer ist /pub/debian).

Eine Distribution umfasst Debian-Quell- und -Binärpakete und die jeweiligen Indexdateien Sources sowie Packages, die die Kopfzeileninformationen von all diesen Paketen enthalten. Erstere werden im Verzeichnis pool/ aufbewahrt, während letztere im Verzeichnis dists/ des Archivs liegen (aus Gründen der Rückwärtskompatibilität).

4.6.4.1. Stable, testing und unstable

Es gibt immer die Distributionen mit den Namen Stable (angesiedelt in dists/stable), Testing (angesiedelt in dists/testing) und Unstable (angesiedelt in dists/unstable). Dies spiegelt den Entwicklungsprozess des Debian-Projekts wider.

In der Distribution Unstable wird aktiv entwickelt (daher wird diese Distribution manchmal auch die development distribution genannt). Jeder Debian-Entwickler kann jederzeit seine Pakete in dieser Distribution ändern. Daher ändert sich der Inhalt dieser Distribution von Tag zu Tag. Da keine besonderen Anstrengungen unternommen werden, um sicherzustellen, dass alles in dieser Distribution funktioniert, ist sie manchmal buchstäblich instabil.

Die Distribution Testing wird automatisch aus Paketen von Unstable erzeugt, falls sie bestimmte Voraussetzungen erfüllen. Diese Voraussetzungen sollten eine gute Qualität für Pakete innerhalb von Testing gewährleisten. Die Aktualisierung von Testing wird zweimal täglich lanciert, gleich nachdem die neuen Pakete installiert wurden. Siehe Die Distribution Testing.

Nach einer Entwicklungsperiode, sobald die Releasemanager diese als abgeschlossen erachten, wird die Distribution Testing eingefroren. Das bedeutet, dass die Richtlinien, die steuern, welche Pakete von Unstable nach Testing verschoben werden, verschärft werden. Pakete, die zu viele Fehler aufweisen, werden entfernt. In Testing sind außer Fehlerkorrekturen keine anderen Änderungen erlaubt. Nachdem, abhängig vom Fortschritt, einige Zeit verstrichen ist, wird die Distribution Testing sogar noch weiter eingefroren. Einzelheiten darüber, wie die Distribution Testing gehandhabt wird, werden vom Veröffentlichungs-Team auf "debian-devel-announce" publiziert. Nachdem die offenen Probleme zur Zufriedenheit des Veröffentlichungs-Teams gelöst wurden, wird die Distribtion veröffentlicht. Veröffentlichen bedeutet, dass Testing in Stable umbenannt wird und für das neue Testing eine neue Kopie erstellt wird. Das vorherige Stable wird in Oldstable umbenannt und bleibt bis zur endgültigen Archivierung dort. Bei der Archivierung wird der Inhalt nach archive.debian.org verschoben.

Der Entwicklungszyklus hängt von der Annahme ab, dass die Distribution Unstable nach einer Periode, in der sie Testing durchläuft, stabil geworden ist. Sogar wenn eine Distribution stabil geworden ist, verbleiben zwangsläufig ein paar Fehler – daher wird die stabile Distribution ab und zu aktualisiert. Diese Aktualisierungen wurden jedoch sehr gründlich getestet und werden in einem einzelnen Archiv eingeführt, um das Risiko zu vermindern, neue Fehler einzuschleppen. Sie können die geplanten Ergänzungen zu Stable im Verzeichnis proposed-updates finden. Diese Pakete in proposed-updates, die den Anforderungen entsprechen, werden periodisch in einem Stapellauf in die Stable-Distribution verschoben und die Überarbeitungsstufe der Stable-Distribution wird erhöht (z.B. "6.0" wird "6.0.1", "5.0.7" wird "5.0.8" und so weiter). Bitte sehen Sie unter Sonderfall Uploads in die Distributionen Stable und Oldstable nach, um weitere Einzelheiten zu erfahren.

Beachten Sie, dass die Entwicklung in unstable während des Freeze nicht wie gewohnt fortgesetzt werden sollte, da Pakete immer noch in unstable erstellt werden, bevor diese nach testing migriert werden. Daher sollte unstable nur Pakete enthalten die auch nach testing migrieren können müssen. Laden Sie daher Pakete nur während des Freeze nach unstable hoch, wenn Sie einen Unblock-Request anfordern möchten (oder wenn sich das Paket nicht in testing befindet).

Wenn Sie an neuen Dingen für die Zeit nach dem Freeze arbeiten laden Sie stattdessen Pakete besser nach experimental.

4.6.4.2. Weitere Informationen über die Testing-Distribution

Pakete werden üblicherweise in der Distribution Testing installiert, nachdem sie in Unstable gewissen Tests unterzogen wurden.

Lesen Sie bitte die Die Distribution Testing, um weitere Einzelheiten zu erfahren.

4.6.4.3. Experimental

Die Distribution Experimental ist eine Spezialdistribution. Sie ist keine vollständige Distribution im Sinn von Stable, Testing und Unstable. Stattdessen ist sie als temporärer Sammelpunkt für hoch experimentelle Software gedacht, bei der eine gute Chance besteht, das ganze System zu zerstören oder von Software, die sogar für die Distribution Unstable noch zu instabil ist (bei der es aber dennoch einen Grund gibt, sie zu paketieren). Bei Benutzern, die Pakete aus Experimental herunterladen und installieren, wird davon ausgegangen, dass sie ausreichend gewarnt wurden. Kurz gesagt, ist in der Distribution Experimental alles möglich.

Dies sind die Zeilen der sources.list 5 für Experimental:

deb http://deb.debian.org/debian/ experimental main
deb-src http://deb.debian.org/debian/ experimental main

Falls eine Chance besteht, dass die Software ein System schwer beschädigen könnte, ist es wahrscheinlich besser, sie in Experimental abzulegen. Zum Beispiel sollte ein experimentell komprimiertes Dateisystem wahrscheinlich nach Experimental wandern.

Jedes Mal wenn eine neue Originalversion eines Pakets vorliegt, das neue Funktionen mitbringt, aber ältere beschädigt, sollte es entweder nicht oder nach Experimental hochgeladen werden. Eine neue Beta-Version einer Software, die eine völlig unterschiedliche Konfiguration nutzt, kann nach Ermessen des Betreuers nach Experimental wandern. Falls Sie an einer inkompatiblen oder komplexen Situation bei Upgrades arbeiten, können sie Experimental auch als Sammelpunkt benutzen, damit Tester frühzeitig Zugriff darauf haben.

Trotzdem kann experimentelle Software unter machen Umständen, mit ein paar Warnungen in der Beschreibung, bewusst nach Unstable wandern, dies wird aber nicht empfohlen, da von Paketen aus Unstable erwartet wird, dass diese nach Testing und final dann nach Stable wandern kann. Sie sollten keine Angst haben Experimental zu benutzen, da es dem FTP-Master keine Probleme bereitet. Die experimentellen Pakete werden regelmäßig entfernt, wenn Sie ein Paket mit einer höheren Versionsnummer nach Unstable hochladen.

Neue Software, die das System voraussichtlich nicht beschädigt, kann direkt nach Unstable hochgeladen werden.

Eine Alternative zu Experimental ist die Benutzung Ihres persönlichen Webspaces auf people.debian.org.

4.6.5. Codenamen der Veröffentlichungen

Jede veröffentlichte Debian-Distribution hat einen Codenamen: Debian 10 wurde buster genannt, Debian 11 bullseye, Debian 12 bookworm, die nächste Debian-Veröffentlichung 13 wird trixie heißen und Debian 14 wird den Namen forky erhalten. Außerdem gibt es eine Pseudodistribution namens Sid, die die derzeitige Unstable-Distribution ist. Da Pakete von Unstable nach Testing wandern, wenn Sie stabiler werden, wird Sid selbst nie veröffentlicht. Neben dem üblichen Inhalt der Debian-Distribution enthält Sid auch Pakete für Architekturen, die noch nicht offiziell durch Debian unterstützt oder veröffentlicht werden. Es ist vorgesehen, diese Architekturen an irgendeinem zukünftigen Datum in die Hauptdistribution zu integrieren. Die Codenamen und Versionen älterer Veröffentlichungen sind auf dieser Webseite aufgeführt.

Da Debian ein offenes Entwicklungsmodell hat (d.h. jeder kann teilnehmen und der Entwicklung folgen), werden sogar die Distributionen Unstable und Testing über das Internet durch die Debian-FTP- und -HTTP-Netzwerkserver verteilt. Folglich müsste, falls das Verzeichnis, das die Kandidatenversion für die Veröffentlichung enthält, testing genannt würde, es beim Veröffentlichen der Version in stable umbenannt werden, was dazu führen würde, dass alle FTP-Spiegel die ganze Distribution erneut erhalten müssten (die ziemlich groß ist).

Wären andererseits von Anfang an die Distributionsverzeichnisse Debian-x.y genannt worden, würden die Leute denken, die Debian-Veröffentlichung x.y sei verfügbar. (Dies ist früher einmal passiert, ein CD-Verkäufer erstellte eine Debian 1.0 CD-ROM auf Bais einer pre-1.0-Entwicklerversion. Das ist der Grund, weshalb die erste offizielle Debian-Veröffentlichung 1.1 und nicht 1.0 war.)

Dadurch werden die Namen der Distributionsverzeichnisse im Archiv durch ihre Codenamen festgelegt und nicht durch ihren Veröffentlichungsstatus (z.B. "bookworm"). Diese Namen bleiben während der Entwicklungszeit und nach der Veröffentlichung erhalten. Symbolische Verweise, die einfach geändert werden können, geben die aktuell veröffentlichte stabile Distribution an. Das ist der Grund, weshalb die echten Distributionsverzeichnisse Codenamen benutzen, während symbolische Verweise für stable, testing und unstable auf die entsprechenden Veröffentlichungsverzeichnisse verweisen.

4.7. Debian-Spiegel

Für die verschiedenen Archive zum Herunterladen und die Website stehen mehrere Spiegel zur Verfügung, um die regulären Server vor zu großer Auslastung zu bewahren. Eigentlich sind einige der regulären Server nicht öffentlich zugänglich – eine erste Schicht von Spiegeln balanciert stattdessen die Last aus. Auf diese Art greifen die Anwender immer auf die Spiegel zu und sind es gewohnt, sie zu benutzen. Dies ermöglich es Debian, seine Bandbreitenanforderungen besser über mehrere Server und Netzwerke zu verteilen und vermeidet grundsätzlich, dass Benutzer übermäßig einen primären Server belasten. Beachten Sie, dass die erste Schicht von Spiegelservern so aktuell wie möglich ist, da ihre Aktualisierung durch die internen Sites ausgelöst wird (dies wird "push mirroring" genannt).

All die Informationen über Debian-Spiegel, einschließlich der verfügbaren FTP-/HTTP-Server, sind unter https://www.debian.org/mirror/ zu finden. Diese nützliche Seite enthält auch Informationen und Werkzeuge, die hilfreich sein können, falls Sie daran interessiert sind, entweder für internen oder öffentlichen Zugriff Ihren eigenen Spiegel einzurichten.

Beachten Sie, dass Spiegel generell durch Dritte betrieben werden, die ein Interesse daran haben, Debian zu helfen. Daher haben Entwickler generell keine Konten auf diesen Maschinen.

4.8. Das Incoming-System

Das Incoming-System ist dafür verantwortlich, aktualisierte Pakete zu sammeln und im Debian-Archiv zu installieren. Es besteht aus einer Zusammenstellung von Verzeichnissen und Skripten, die auf ftp-master.debian.org installiert sind.

Pakete werden von den Betreuern in ein Verzeichnis hochgeladen, das UploadQueue heißt. Dieses Verzeichnis wird alle paar Minuten durch einen Daemon gescannt, der queued genannt wird; es werden *.command-Dateien ausgeführt und verbleibende, korrekt signierte *.changes-Dateien werden zusammen mit ihren zugehörigen Dateien in das Verzeichnis unchecked verschoben. Dieses Verzeichnis ist für die meisten Entwickler unsichtbar, da FTP-Master eingeschränkt wurde. Es wird alle 15 Minuten durch das Skript dak process-upload gelesen, das die Richtigkeit der hochgeladenen Pakete und ihre kryptografischen Signaturen prüft. Falls das Paket für installationsbereit befunden wird, wird es in das Verzeichnis done verschoben. Falls dies das erste Hochladen des Pakets ist (oder es neue Binärpakete enthält), wird es in das Verzeichnis new verschoben, wo es auf die Freigabe durch die FTP-Master wartet. Falls das Paket Dateien enthält, die manuell installiert werden müssen, wird es in das Verzeichnis byhand verschoben, wo es auf die manuelle Installation durch die FTP-Master wartet. Andernfalls, falls ein Fehler aufgespürt wurde, wird das Paket abgewiesen und landet im Verzeichnis reject.

Sobald das Paket akzeptiert wurde, sendet das System dem Betreuer per E-Mail eine Bestätigung, schließt alle Fehler, die durch das Hochladen als behoben markiert wurden und die Auto-Builder können beginnen, es erneut zu kompilieren. Das Paket ist nun öffentlich unter https://incoming.debian.org/ zugänglich, bis es wirklich im Debian-Archiv installiert wird. Dies geschieht viermal täglich (und wird aus historischen Gründen "dinstall run" genannt). Das Paket wird dann aus dem Incoming-System entfernt und zusammen mit den anderen Paketen in den Pool installiert. Sobald alle anderen Aktualisierungen (Erzeugen neuer Packages- und Sources-Indexdateien zum Beispiel) durchgeführt wurden, wird ein Spezialskript aufgerufen, das alle Primärspiegel auffordert, sich selbst zu aktualisieren.

Die Archivverwaltungs-Software wird außerdem die von Ihnen hochgeladene OpenPGP signierte .changes-Datei an die entsprechenden Mailinglisten senden. Falls ein Paket veröffentlicht wird, bei dem die Distribution auf stable gesetzt ist, wird die Ankündigung an debian-changes@lists.debian.org gesandt. Falls ein Paket veröffentlicht wird, bei dem die Distribution auf unstable oder experimental gesetzt ist, wird die Ankündigung stattdessen an debian-devel-changes@lists.debian.org oder an debian-experimental-changes@lists.debian.org gesandt.

Obwohl der Zugriff auf FTP-Master eingeschränkt ist, ist eine Kopie für alle Entwickler unter mirror.ftp-master.debian.org verfügbar.

4.9. Paketinformationen

4.9.1. Im Web

Jedes Paket hat mehrere zugehörige Web-Seiten. https://packages.debian.org/Paketname zeigt jede Version des Pakets, die in verschiedenen Distributionen verfügbar ist. Jede Version verweist auf eine Seite mit Informationen, einschließlich der Paketbeschreibung, der Abhängigkeiten und der Verweise zum Herunterladen.

Die Fehlerdatenbank verfolgt Fehler für jedes Paket. Sie können die Fehler unter der URL https://bugs.debian.org/Paketname ansehen.

4.9.2. Das Hilfswerkzeug dak ls

dak ls ist Teil der Werkzeugsammlung Dak, die verfügbare Paketversionen für alle bekannten Distributionen und Architekturen auflistet. Das Werkzeug dak ist auf ftp-master.debian.org und auf dem Spiegel mirror.ftp-master.debian.org verfügbar. Es benutzt ein einziges Argument, das einem Paketnamen entspricht. Ein Beispiel erklärt es besser:

$ dak ls evince
evince     | 3.22.1-3+deb11u2 | oldstable           | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
evince     | 3.22.1-3+deb11u2 | oldstable-debug     | source
evince     | 3.30.2-3+deb12u1 | stable              | source, amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
evince     | 3.30.2-3+deb12u1 | stable-debug        | source
evince     | 3.38.2-1         | testing             | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
evince     | 3.38.2-1         | unstable            | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
evince     | 3.38.2-1         | unstable-debug      | source
evince     | 40.4-1           | buildd-experimental | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
evince     | 40.4-1           | experimental        | source, amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
evince     | 40.4-1           | experimental-debug  | source

An diesem Beispiel können Sie sehen, dass sich die Version in Unstable von der Version in Testing unterscheidet und dass dort ein rein binärer NMU des Pakets für alle Architekturen durchgeführt wurde. Jede Version des Pakets wurde auf allen Architekturen neu kompiliert.

4.10. Das Debian-Paketverfolgungssystem

Das Debian-Paketverfolgungssystem ist ein E-Mail-basiertes Werkzeug, das die Aktivität eines Quellpakets verfolgt. Sie können die gleichen E-Mails wie der Paketbetreuer erhalten, indem Sie sich einfach im PTS für das Paket einschreiben.

Das Paketverfolgungssystem hat eine Web-Schnittstelle unter https://tracker.debian.org/, die eine große Menge Informationen über jedes Quellpaket zusammenträgt. Sie zeichnet sich durch viele nützliche Verweise aus (BTS, QA-Statistiken, Kontaktinformationen, DDTP-Übersetzungsstatus, Paketerstellungsprotokolle) und sammelt noch viele weitere Informationen von verschiedenen Stellen (die 30 letzten Einträge des Änderungsprotokolls, Teststatus etc.). Es ist ein sehr nützliches Werkzeug, falls Sie wissen möchten, was bei einem speziellen Quellpaket vorgeht. Außerdem können Sie, sobald Sie sich authentifiziert haben, jedes Paket mit einem Klick abonnieren oder abbestellen.

Sie können mit einer URL wie https://tracker.debian.org/pkg/Quellpaket direkt zur Web-Seite springen, die eine spezielles Quellpaket betrifft.

Für genauere Informationen sollten Sie die Dokumentation lesen. Unter anderem wird dort erklärt, wie Sie mit ihm per E-Mail interagieren, von ihm weitergeleitete E-Mails filtern, Änderungsbenachrichtigungen vom VCS-System konfigurieren oder Features für Paketverwalter und Teams bestmöglichst ausnutzen können.

4.11. Paketübersicht des Entwicklers

Ein Webportal der QS (Qualitätssicherung) ist unter https://qa.debian.org/developer.php verfügbar. Es zeigt eine tabellarische Auflistung aller Pakete eines einzelnen Entwicklers an (einschließlich derer, bei denen eine Gemeinschaft als Mitbetreuer aufgelistet ist). Die Tabelle gibt einen guten Überblick über die Pakete des Betreuers: Anzahl der Fehler nach Schweregrad, Liste der verfügbaren Versionen in jeder Distribution, Test-Status und vieles mehr, einschließlich Verweisen zu irgendwelchen anderen nützlichen Informationen.

Es ist ein guter Tipp, regelmäßig auf seine eigenen Daten zu schauen, um keine offenen Fehler oder Zuständigkeiten für Pakete zu vergessen.

4.12. Debians FusionForge-Installation: Alioth

Alioth war ein Debian Dienst der im Juni 2018 abgelöst und danach abgeschaltet wurde. Es basierte auf einer leicht modifizierten Version der FusionForge-Software (die aus SourceForge und GForge entwickelt wurde). Diese Software bot Entwicklern Zugriff auf benutzerfreundliche Tools wie Bug-Tracker, Patch-Manager, Projekt-/Task-Manager, Datei-Hosting-Dienste, Mailinglisten, VCS-Repositorys usw.

Für viele zuvor angebotene Dienste gibt es Ersatz. Dies ist wichtig zu wissen, da es immer noch viele Hinweise auf Alioth gibt, die noch korrigiert werden müssen. Wenn Sie auf solche Referenzen stoßen, nehmen Sie sich bitte die Zeit, um zu versuchen, diese anzupassen, indem Sie beispielsweise Fehler melden oder die Referenz nach Möglichkeit selbst korrigieren.

4.13. Goodies für Debian Mitglieder

Vorteile für Debian Mitglieder sind unter https://wiki.debian.org/MemberBenefits dokumentiert.