English version

Debian Interne Projekte

Vortrag auf den LinuxDays Luxembourg 2002

2. Oktober 2002

Kurzfassung

Der Vortrag richtet sich an Zuhörer, die an der Philosophie Debian-interner Projekte und der dabei eingesetzten Techniken, um die Projekte zu verwalten, interessiert sind. Es wird im Detail erläutert, warum diese Projekte keine Abspaltungen ("forks") von Debian sind, sondern vollständig in die Debian GNU/Linux Distribution integriert sind und welche Vorteile durch diesen Ansatz erzielt werden. Das Konzept der Meta-Pakete und Nutzer-Rollen basierter Menüs wird eingehend behandelt.

Der Vortrag richtet sich an ein technisch interessiertes Publikum.

Weiterer Vortrag zu diesem Thema: Debian-Med

Auf dieser Seite befindet sich die englische MagicPoint-Quelle inclusive dem verwendeten MagicPoint-Style des Vortrages.
Hier befinden sich die vorformatierten Folien ebenfalls in Englisch.

Debian Interne Projekte

Debian-Junior

Debian-Med

Debian-Edu

DeMuDi

(Seite 1)

Überblick

  • Was ist Debian?
  • Was sind Debian interne Projekte?
  • Debian - adaptierbar für jeden Zweck?
  • Technologie
    • Meta-Pakete
    • Nutzer Menüs
  • Dokumentation
  • Zukunft
(Seite 2)

Was ist Debian?

  • Linux ist einfach nur der Kern des Betriebssystems.
  • Benötigt werden darüber hinaus eine große Zahl von Anwendungen.
  • Solche Sammlungen von Software um den Linux-Kern wird als Distribution bezeichnet.
  • Firmen, die solche Distributionen zusammenstellen werden Distributor genannt.
  • Sie erwirtschaften Geld durch den Verkauf dieser Distribution, durch Nutzerunterstützung und -schulung.
  • Beispiele für solche Distributoren sind Mandrake, RedHat, Suse und andere.
  • Debian ist einfach einer dieser Distributoren.
(Seite 3)
Verzeihung.
Das war nicht korrekt.
(Seite 4)

Was ist Debian? (nächster Versuch)

Das Debian-Projekt ist eine Gemeinschaft von Individuen die in Gemeinschaftsarbeit ein freies Betriebssystem entwickeln. Dieses Betriebssystem, das wir entwickelt haben, wird
Debian GNU/Linux,
genannt, oder einfach nur Debian. Weiterhin wird daran gearbeitet, Debian mit anderen Kerneln anzubieten, hauptsächlich für Hurd. Andere mögliche Kernel sind BSD und auch Ports für MS Windows sind geplant.
(Seite 5)

Netzwerk des Vertrauens

Debian Entwickler Schlüsselring
(Seite 6)

Unterschiede zu anderen Distributionen

  • Debian ist keine Firma sondern eine Organisation.
  • Debian verkauft nichts.
  • Debian Mitglieder (sogenannte Entwickler) sind Freiwillige.
  • Die Entwickler arbeiten an dem gemeinsamen Ziel: Das bestmögliche Betriebssystem herzustellen.
  • Debian ist die größte Sammlung sofort installierbarer freier Software im Internet
  • Es gibt zwei Möglichkeiten Debian GNU/Linux zu beziehne:
    • Es kann bei verschiedenen anderen Distributoren auf CD erworben werden
    • Kostenlose Installation direkt aus dem Web
  • Der letzte Weg ist der übliche und es gibt äußerst praktische Programme, die das sehr flexibel unterstützen.
(Seite 7)

Was sind Debian interne Projekte?

  • Debian besteht aus etwa 10000 Programm-Paketen
  • In der Regel sind Nutzer jedoch nur an einer Untermenge all dieser Pakete interessiert
  • Interne Projekte sorgen für spezielle Nutzergruppen mit unterschiedlichen Fähigkeiten und Interessen
  • Es sind nicht nur praktische Sammlungen von spezifischen Programm-Paketen sondern es wird auch für leichte Installation und Konfiguration Sorge getragen.
  • Keine Abspaltung ("fork") von Debian

→ Grundidee: Es wird keine separate Distribution erstellt, sondern Debian für einen speziellen Zweck angepaßt.

(Seite 8)

Motivation

  • Profil der ins Auge gefaßten Nutzer:
    • Geringe technische Kompetenz
    • Nicht in der Lage, Programme so wie sie direkt von den Autoren angeboten werden mit akzeptablem Aufwand zu installieren
    • Kein Interesse an der Administration
    • Interesse begrenzt auf eine definierte Untermenge der verfügbaren freien Software
    • Bedarf für leichte Bedienbarkeit
    • Exakt beschreibbare Sicherheitsanforderungen
  • Weitere denkbare Projekte:
    • Behörden
    • Büro
    • Unternehmen / Finanzbuchhaltung
    • ???
(Seite 9)

Status freier Software auf Speizialgebieten

  • Schwierig zu installieren
  • Schwierig zu betreuen
  • Schwer zu benutzen weil teilweise graphische Oberflächen fehlen
  • Ungewöhnliche Lizenzen
  • Vom ursprünglichen Autor nicht weiter betreut
  • Portierungsprobleme (Hardware-Architekturen, Byte-Reihenfolge, 32 vis 64 Bit)
  • Datenformate nicht austauschbar
  • Parallele Entwicklung ein und derselben Funktionalität
  • Die verwendeten Software-Werkzeuge sind teilweise nicht für den Verwendungszweck geeignet

→ Fehlen einer Integrationsumgebung

(Seite 10)

Geschichte der Debian internen Projekte

  • Debian-Junior
    • Start: Anfang 2000
    • Initiator: Ben Armstrong <synrg@debian.org>
    • Freigabe im momentan offiziellen Debian mit dem Codenamen Woody
  • Debian-Med
    • Start: Anfang 2002
    • Initiator: Andreas Tille <tille@debian.org>
    • Ideen von Debian-Junior wurden adaptiert und neue Funktionen hinzugefügt
  • Debian-Edu
    • Start: Momentan
    • Initiator: Raphaël Hertzog <hertzog@debian.org>
    • Reintegration einer Abspaltung von Debian
  • Demudi
    • Start: Im Begriff zu starten
    • Initiator: Marco Trevisani <marco@centrotemporeale.it>
    • Reintegration einer Abspaltung von Debian
(Seite 11)

Debian-Junior

Debian für Kinder von 1 bis 99
  • Debian zu einem System entwickeln, daß Kinder aller Altersgruppen nutzen möchten
  • Es soll so schön werden, daß Kinder es mögen
  • Es soll als Spielwiese für Experimente dienen
  • Es sollen nicht nur Spiele zur Verfügung gestellt werden, sondern auch für Qualitätsstandards bei diesen Spielen gesorgt werden
  • Das Hauptaugenmerk liegt auf kleinen Kindern, ältere sollten so gut mit Debian umgehen können, daß keine speziellen Anpassungen mehr nötig sind
(Seite 12)

Debian-Med

Debian im Gesundheitswesen
  • Integrierte Softwareumgebung für alle medizinischen Aufgaben
  • Besonderes Augenmerk gilt der Qualität der Programm-Pakete des medizinischen Bereichs, die bereits in Debian integriert sind.
  • Erstellen von Paketen mit medizinischer Software, die in Debian im Moment noch fehlen und Integration in Debian
  • Schaffen einer generellen Infrastruktur für medizinisch orientierte Nutzer
  • Bemühungen, die Qualität freier medizinischer Software, die noch nicht in Debian enthalten ist zu erhöhen, um eine Integration in Debian zu ermöglichen
(Seite 13)

Debian-Edu

Debian für die Bildung
  • Debian soll die für die Bildung am besten geeignete Distribution werden
  • Vereinigung verschiedener Initiativen rund um freie Software für die Ausbildung (die oft schon auf Abspaltungen von Debian basieren)
  • Integration von Änderungen der Französischen Debian Education distribution in Debian
  • Kooperation mit dem Debian-basierten SkoleLinux in Norwegen
  • Kooperation mit anderen Bildung-orientierten Projekten (wie Seul, Ofset, KdeEdu)
  • Projekt im Start begriffen, Mailing-Liste und Web-Seite in Vorbereitung
(Seite 14)

DeMuDi

Debian Multimedia Distribution
  • Noch nicht offiziell als internes Projekt bekanntgegeben doch der Projektkoordinator bereitet gerade die notwendigen Schritte vor
  • Orientiert auf Musik und Multimedia
  • Debian GNU/Linux soll die Plattform der Wahl für Musiker und Multimedia-Künstler werden
  • DeMuDi ist Teil eines von der Europäischen Union geförderten Projekts namens AGNULA
  • Der Initiator ist im Moment noch kein Debian Entwickler doch es ist durchaus möglich, auch schon in diesem Stadium für Debian zu arbeiten
(Seite 15)

Warum nicht einfach von Debian abspalten?

  • Separate Distribution würde zusätzlichen Aufwand kosten
    • Würde schwerlich besser als Debian
    • Erforderte ständig Arbeit, um das Basis-System, die Installationsdisketten etc. auf dem aktuellen Stand zu halten
    • Nahezu unmöglich, so schnell wie Debian Sicherheitslücken zu schließen
    → Abspaltung wäre eine schlechte Idee.
  • Integration in Debian hat Vorteile
    • Enorm große Nutzerbasis auf der ganzen Welt erhöht den Bekanntheitsgrad der Speziallösungen automatisch mit Debian
    • Secure and stable system without extra effort
    • Bug Tracking System umsonst
    • Infrastrukture (HTTP-, FTP-, Mailserver, PKI, ...) umsonst
  • Vorteile auch für Debian
    • Verbesserung der Qualität von Paketen indem sie nutzerfreundlicher gestaltet werden
(Seite 16)

Debian - adaptierbar für jeden Zweck?

  • Entwickelt von etwa 1000 Freiwilligen
  • Flexibel, da nicht an kommerzielle Interessen gebunden
  • Strenge Regeln ("Policy") sorgen dafür, daß alle Bestandteile miteinander harmonieren
  • Gemeinsames Interesse jedes einzelnen Entwicklers, das beste Betriebssystem für sich selbst zu erhalten
  • Entwickler haben im "realen Leben" Kinder oder arbeiten im medizinischen Umfeld etc.
  • Im Gegensatz zu Angestellten von Firmen hat jeder einzelne Entwickler die Freiheit und die Möglichkeit, seine Visionen zu verwirklichen.
  • Auf diese Weise kann jeder Entwickler Einfluß auf die Entwicklung von Debian nehmen - er muß es einfach nur in Angriff nehmen
(Seite 17)

Technische Gründe für die Anpassungsfähigkeit

  • Focus on
    • Sicherheit
    • Stabilität
    • Qualität
    • Sorgfältiges Testen (BTS)
    • Kontinuität (Erhalten alter Konfigurationen)
  • Funktionale Paketverwaltungswerkzeuge
  • Unterstützung von 11 Hardware Architekturen (Automatische Erzeugung von Paketen für: alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc)
(Seite 18)

Technologie (1): Meta-Pakete

  • Sammlung spezifischer Software
    • Keine Suche nach verfügbarer Software erforderlich
    • Nutzer muß nicht ide lange Lister von Debian-Paketen im einzelnen User durchforsten
    • Leichte Vergleichbarkeit von Software mit gleicher Funktionalität
    • Schutz vor versehentlichem Löschen benötigter Pakete
    • Konflikte zu inkompatiblen Paketen
    • Vereinfachte Installation
    • Geringer Aufwand für die Administration
  • Angepaßte Konfiguration innerhalb von Meta-Paketen
    • Berücksichtigung spezieller Bedürfnisse von Projekt-Nutzern
  • Dokumentations-Pakete
    • Packen und Erzeugen relevanter Dokumentation
    • Übersetzung
(Seite 19)

Handhabung von Meta-Paketen

  • Überblick über
    • Kommandozeilen-Werkzeuge
    • Textbasierte Nutzerschnittstellen
      Sie kennen dselect?    → Vergessen Sie's!
    • Graphische Nutzerschnittstellen
    • Web-Schnittstellen
  • Hinweise für die Administration
  • Zukünftige Entwicklung
(Seite 20)

Kommandozeilen-Werkzeuge (1)

apt-cache
Suche nach relevanten Stichworten in Paketbeschreibungen
~> apt-cache search med | grep '^med-'
med-bio - Debian Med Bio-Informatik-Pakete
med-common - Debian-Med-Projekt: gemeinsames Paket
med-common-dev - Debian Med Project common files for developing meta packages
med-dent - Medizinische Debian-Pakete für die Zahnarztpraxis
med-doc - Debian Pakete mit medizinischen Dokumentationen
med-imaging-dev - Debian Med packages for medical image development
med-tools - Debian Med - verschiedene Programe
med-bio-contrib - Debian Med bioinformatics packages (contrib and non-free)
med-imaging - Debian Med Imaging Packete

→ Kein wirklich naheliegendes Vorgehen im Moment

(Seite 21)

Kommandozeilen-Werkzeuge (2)

grep-dctrl
~> grep-dctrl -r ': med-' /var/lib/dpkg/available | grep -v '^[ SIMAVF]' | grep -v '^Pri'
Package: med-dent
Depends: odontolinux, galeon | www-browser
Description: Debian Med packages for dental practice

Package: med-imaging-dev
Depends: librumba-dev, libgtkimreg-dev
Description: Debian Med packages for medical image development

Package: med-doc
Depends: doc-linux-html | doc-linux-text, resmed-doc, galeon | www-browser
Description: Debian Med documentation packages

Package: med-tools
Depends: mencal
Description: Debian Med several tools

Package: med-common-dev
Depends: debconf (>= 0.5)
Description: Debian Med Project common files for developing meta packages

Package: med-imaging
Depends: rumbaview, paul
Description: Debian Med imaging packages

Package: med-common
Depends: adduser, debconf (>= 0.5), menu
Description: Debian-Med-Projekt: gemeinsames Paket

Package: med-bio
Depends: bugsx, fastdnaml, fastlink, garlic, njplot, readseq, tree-puzzle
Description: Debian Med bioinformatics packages

Package: med-bio-contrib
Depends: clustalw, clustalx, molphy, phylip, seaview, treetool
Description: Debian Med bioinformatics packages (contrib and non-free)

→ Auch etwas kryptisch

(Seite 22)

Kommandozeilen-Werkzeuge (3)

auto-apt
~> sudo auto-apt update

put: 880730 files,  1074158 entries
put: 903018 files,  1101981 entries

~> auto-apt -x -y run
Entering auto-apt mode: /bin/bash
Exit the command to leave auto-apt mode.
bash-2.05b$ less /usr/share/doc/med-bio/copyright
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  bugsx fastlink readseq 
The following NEW packages will be installed:
  bugsx fastlink med-bio readseq 
0 packages upgraded, 4 newly installed, 0 to remove and 183  not upgraded.
Need to get 0B/1263kB of archives. After unpacking 2008kB will be used.
Reading changelogs... Done
Selecting previously deselected package bugsx.
(Reading database ... 133094 files and directories currently installed.)
Unpacking bugsx (from .../b/bugsx/bugsx_1.08-6_i386.deb) ...
Selecting previously deselected package fastlink.
Unpacking fastlink (from .../fastlink_4.1P-fix81-2_i386.deb) ...
Selecting previously deselected package med-bio.
Unpacking med-bio (from .../med-bio_0.4-1_all.deb) ...
Setting up bugsx (1.08-6) ...

Setting up fastlink (4.1P-fix81-2) ...

Setting up med-bio (0.4-1) ...

localepurge: checking for new locale files ...
localepurge: processing locale files ...
localepurge: processing man pages ...
This package is Copyright 2002 by Andreas Tille <tille@debian.org>

This software is licensed under the GPL.

On Debian systems, the GPL can be found at /usr/share/common-licenses/GPL.
/usr/share/doc/med-bio/copyright (END) 

&rarr Ist das nicht eine feine Sache?

(Seite 23)

Textbasierte Nutzerschnittstellen

tasksel
Tasksel screenshot
  • Debian Task Installations-Werkzeug
  • Endbenutzer-Abschnitt enthält einen Eintrag für jedes interne Projekt
  • Einfache Installation
(Seite 24)

Graphische Nutzerschnittstellen (1)

gnome-apt
Gnome-apt screenshot
(Seite 25)

Graphische Nutzerschnittstellen (2)

synaptic
Synaptic screenshot

→ Die Filter von Synaptic sind eine sehr nützliche Hilfe.

(Seite 26)

Web-Schnittstellen (1)

Web-Suche
(Seite 27)

Web-Schnittstellen (2)

Package Tracking System
http://qa.debian.org/developer.php?login=<developer>
verwenden Sie synrg für die Junior-Pakete und tille für die Med-Pakete
http://packages.qa.debian.org/<letter>
hängen Sie 'j' oder 'm' für Junior bzw. Med an

→ Derzeit auch nicht wirklich naheliegend, doch mit dem Package Tracking System vertraut zu werden is ein zusätzlicher Vorteil :-)

  • Kürzlich entwickeltes Web-Werkzeug
  • Äußerst nützliche Hilfe beim Beobachten des Status von Paketen
  • Unterstützt das Abonnement interessanter Pakete
(Seite 28)

Package Tracking System

(Seite 29)

Web interfaces (3)

/usr/share/doc/junior-doc/examples/scripts/list-junior
/usr/share/doc/junior-doc/examples/scripts/list-junior example screenshot

→ Im Moment noch kein wirkliches Werkzeug aber ein guter Ausgangspunkt

(Seite 30)

Zukünftige Handhabung von Meta-Paketen

  • Offensichtlich gibt es im Moment noch nicht die cleveren Werkzeuge, wie das für Debian üblich ist.
  • Werkzeuge, die den Cache von Apt direkt nach Meta-Paketen durchsuchen, müssen noch geschrieben werden.
  • Es muß noch eine Übereinkunft für ein zusätzliches Flag für die debian/control Datei in der Policy getroffen werden
  • Festlegung eines Satzes von Stichworten für jedes interne Projekt und schreiben eines Werkzeugs, um diese komfortabel zu suchen
(Seite 31)

Werkzeuge für die Entwicklung von Meta-Paketen

  • Das Bauen von Meta-Paketen ist mehr oder weniger gleich für jedes Paket
  • Dieser Vorgang sollte parameterisiert und durch Werkzeuge unterstützt werden, um es zu
    • Vereinfachen
    • die Fehleranfälligkeit zu reduzieren
  • Es gibt noch keine allgemeine Übereinkunft innerhalb der internen Projekte darüber, doch zumindest das Debian-Med Projekt benutzt med-common-dev für das Bauen von Meta-Paketen
  • Jedes Debian-Med Paket build-depends von diesem Paket, das Vorlagen und Werkzeuge für das Bauen von Meta-Paketen und auch einige Beispiele enthält
(Seite 32)

Technologie (2): Nutzermenüs

  • Erstellung einer Liste von Projektnutzern mittels debconf um Gruppen wie junior und med in /etc/group zu verwalten
  • Andere Nutzer werden nicht mit diesen zusätzlichen Menüs belästigt
  • Ein Befehl update-subproject zum aktualisieren der Nutzermenüs nach der Installation neuer Pakete oder dem hinzufügen von Nutzern zu diesen Gruppen wird zur Verfügung gestellt
  • Die aktuellen Debian-Med Pakete vermitteln einen Eindruck von diesen Menüs
(Seite 33)

Werkzeuge für die Nutzermenü-Verwaltung

Das Paket med-common enthält debconf Befehle um Projekt-Nutzer zu verwalten
Med-common debconf screenshot
(Seite 34)

Generelle Neugestaltung des Debian Menüsystems

  • Derzeit wird das Debian Menüsystem vollkommen neu geschrieben
  • Debian Pakete aktualisieren das allgemeine Menü nach ihrer Installation automatisch
  • Wichtige Eigenschaften wie Nutzer-Rollen und Übersetzung werden hinzugefügt
  • Plan: Meta-Pakete werden Rollen-spezifische Menüeinträge enthalten, die für die jeweiligen Nutzer aktualisiert werden
  • Ermöglichen einer sauberen Verwaltung von Mehrbenutzersystemen
(Seite 35)

Dokumentation

  • Alle internen Projekte legen besonderen Wert auf Dokumentation und Übersetzung weil die ins Auge gefaßten Nutzer dafür großen Bedarf haben
  • Immer einen Blick wert: <project>-doc Pakete!
  • Ben Armstrong hat ein Debian Sub-Projekt HOWTO: begonnen. Es erklärt ganz allgemein, wie ein Debian internes Projekt zu beginnen und zu betreuen ist.
(Seite 36)

Zukunft

Debian-Junior

  • Erste Freigabe mit Debian Woody
  • In der Task-Auswahlliste der Installations CD enthalten

Debian-Med

  • Erste Schritte
  • Einige Meta-Pakete fertig
  • Großes Interesse von Entwicklern und Nutzern
  • Erste Version für Sarge geplant
  • Knoppix basierte Live-CD
(Seite 37)

Future

Debian-Edu

  • Erstellen einer Webseite und einer Mailing-Liste
  • Integration von Paketen und Techniken aus bildungsorientierten Distributionen, die noch nicht in Debian enthalten sind
  • Bereitstellung von CDs mit dem neuen Debian-Installer

DeMuDi

  • Wie bei Debian-Edu
  • Förderung wirklich freier Multimedia-Software (Patent-Probleme, Lizenzen, etc.)
(Seite 38)

Weitere Informationen

(Seite 39)

Homepage Andreas Tille