Debian/Paketverwaltung

Aus Foxwiki

Debian/Paketverwaltung - Überblick

Beschreibung

Um Pakete auf einem Debian GNU/Linux-System zu installieren, stehen mehrere Programme zur Verfügung

dpkg
  • Neben dpkg, das auf der Kommandozeile ausgeführt wird, ist dselect das älteste von diesen mit einer Benutzeroberfläche. dselect stellt ein überaus mächtiges Programm mit vielen Möglichkeiten und allen Freiheiten dar.
  • Dies hat aber leider nicht bei allen Anwendern (gerade bei Einsteigern) zur Beliebtheit beigetragen. dselect bietet eine sehr ausführliche Online-Hilfe, aber mal ehrlich: Wer liest so etwas schon? Aber wer über einige wenige Kenntnisse von dselect verfügt, wird sehen, dass alles ganz einfach ist, und die wird Mächtigkeit dieses Werkzeugs schnell zu schätzen wissen.
apt

apt stellt die nächste Generation der Debian GNU/Linux-Installationsprograme dar.

  • Mit der Version 3.0 von Debian GNU/Linux ist die komplette Umstellung des Paketmanagements auf apt erfolgt.

aptitude aptitude ist nun die bevorzugte Methode zur Paketverwaltung auf der Konsole. aptitude unterstützt die meisten Kommandozeilenoperationen von apt-get und hat bessere Fähigkeiten bei der Auflösung von Abhängigkeiten bewiesen.

„Secure APT“ ist seit Debian 4.0 Bestandteil der Distribution.
  • Secure APT sorgt für zusätzliche Sicherheit von Debian GNU/Linux-Systemen, indem starke Kryptografie und digitale Signaturen zum Verifizieren heruntergeladener Pakete verwendet werden.
  • Das Programm apt-key wird genutzt, um dem Schlüsselring von apt neue Schlüssel hinzuzufügen.
  • Standardmäßig wird nur der Schlüssel zum Signieren des Debian Archives aus dem Paket debian-archive-keyring berücksichtigt.
  • In der Standardkonfiguration wird apt nun eine Warnung ausgeben, falls Pakete aus Quellen heruntergeladen werden, die nicht authentifiziert werden konnten.
Paketeauwahl

Unabhängig davon, welches Programm Sie zur Installation benutzen - Sie müssen in jedem Fall auswählen, welche Pakete Sie installieren möchten.

  • Dies ist bei Debian GNU/Linux keine leichte Aufgabe, denn mittlerweile umfasst die Distribution einige tausend Pakete! Um Ihnen die Auswahl zu erleichtern, wurden von den Entwicklern so genannte „ task“-Pakete zusammengestellt.
  • Diese „Gruppierung“ von Paketen vereinfacht Ihnen die Selektion.
  • Wählen Sie beispielsweise das Paket task-gnome-desktop aus, so werden alle nötigen Pakete für einen GNOME-Desktop ausgewählt und installiert.
  • Weitere Informationen zu diesen Paketen finden Sie in [../../debiananwenderhandbuch/taskpakete.html „Taskpakete“ ].

apt-get oder gnome-apt oder auch das bereits erwähnte dselect können zum Auswählen und Installieren einzelner Pakete benutzt werden.

Die Paketverwaltung unter Debian GNU/Linux stellt eines der Highlights dieser Distribution dar

Informationen zu den grundsätzlichen Vorgängen bei der Installation eines Pakets

Jedes Programmpaket enthält in der Regel einige verschiedene Dateien, die zur Funktion dieses Programms benötigt werden.
  • Hierzu gehören natürlich das Programm selbst, die Bibliotheken, Dateien mit Daten wie zum Beispiel Grafiken für Spiele, die Anleitung (Manpages) usw.
  • Bei der Installation eines Programms muss sichergestellt sein, dass alle Dateien am richtigen Platz im Verzeichnisbaum installiert werden.
Wenn Sie später ein Programm wieder von Ihrem System entfernen wollen, ist es ebenfalls wichtig zu wissen, welche Dateien zu einem Programm gehören und wo sie sich befinden.
  • Weiterhin ist festzustellen, ob Dateien installiert wurden, die mittlerweile von anderen Programmen benutzt werden.
  • In diesem Fall darf das Paket unter Umständen nicht entfernt werden.
Ebenso kann der Fall eintreten, dass ein Programm auf den neuesten Stand gebracht werden soll.
  • Bei diesem Vorgang werden Dateien aktualisiert und eventuell auch einige Dateien gelöscht, die von der neuen Version nicht mehr benötigt werden.
  • Auch dies muss so durchgeführt werden, dass nicht andere Programme danach nicht mehr funktionsfähig sind.
Das Debian GNU/Linux-Paketsystem wacht über alle diese Vorgänge und hält Ihr System immer in einem benutzbaren Zustand.

Organisation der Pakete

Debian GNU/Linux organisiert die Pakete in einer festgelegten Hierarchie
  • Unter anderem werden Bereiche mit allgemeiner, freier Software (main), die den DFSG (Debian Free Software Guidelines - [../../debiananwenderhandbuch/dfsg.html „Debian Free Software Guidelines“ ]) entspricht, und Bereiche mit Software, die nicht unter solchen freien Lizenzen steht (non-free), unterschieden.
  • Als weiterer Bereich steht contrib zur Verfügung, hier finden sich Pakete mit freier Software, die aber auf nicht-freien Paketen aufbauen.
  • Die Verantwortlichen für das Debian Projekt haben sich entschieden, den Bereich „non-free“ zukünftig nicht mehr zu unterstützen.
  • Es wird versucht, die Autoren der Software-Pakete zu überzeugen, eine freie Lizenz zu verwenden.
  • Gelingt dies nicht, so wird das entsprechende Paket in absehbarer Zeit nicht mehr auf den Debian Servern verfügbar sein.
Die nächste Ebene beschreibt die Architektur, also die Prozessorfamilie, auf der die Binärpakete laufen.
  • Auch die Sourcen (Quellcodes) zu den Paketen sind in dieser Ebene angesiedelt.
  • In der letzten Ebene finden sich diverse Verzeichnisse, in denen die eigentlichen Pakete zu Gruppen, wie zum Beispiel „Games“ oder „X11“, zusammengefasst werden.

Release

Von Debian werden zu jedem Zeitpunkt vier Release-Varianten angeboten
Die zuletzt veröffentlichte Version heißt „stable“.
  • Dort sind alle Pakete sehr gut getestet, und die jeweils aktuellsten Sicherheitsupdates sind sehr schnell verfügbar.
  • Mit einer solchen „stable“-Version ist in etwa alle zwei Jahre zu rechnen.
  • Aktualisiert wird diese Version durch „Release“-Versionen (Unterversionen wie beispielsweise 3.1 R2), die in unregelmäßigen Abständen herausgegeben werden.
  • Sicherheitsupdates sind für diese Version sehr zeitnah verfügbar.
  • Dieses stabile Release von Debian sollte als Basis für alle produktiven Systeme eingesetzt werden.
Unstable und Testing

Darüber hinaus gibt es zwei weitere Zweige, die zwar verfügbar, aber nicht vom Debian Team für den produktiven Betrieb freigegeben sind: „unstable“ (an diesem Release wird laufend weiterentwickelt) und „testing“, das der Sammelplatz für das nächste offizielle Release ist. „testing“ setzt sich aus Paketen zusammen, die nach 10 bis 14 Tagen im Zweig „unstable“ keine für das Release entscheidenden Fehler gezeigt haben und dann in den „testing“-Zweig übernommen werden.

  • Die Pakete in „testing“ haben eine gute Stabilität und können für den laufenden Betrieb auf nicht geschäftskritischen Systemen eingesetzt werden.
  • Hier sollte man aber auf kleinere Probleme und Ausfallzeiten gefasst sein.
  • Sehr aktuelle Pakete finden Sie aber eher im „unstable“-Bereich.
  • Sicherheitsupdates werden für diese Releases nicht garantiert.
  • Häufig sind entsprechende Pakete verfügbar; verlassen Sie sich aber nicht darauf.
Experimental

Für einige Pakete wird darüber hinaus manchmal „Experimental“ benutzt.

  • Dieser Zweig enthält neuere Software-Versionen, die jedoch sehr große Änderungen mit sich bringen.
  • Beispielsweise werden dort sehr neue und aktuelle Software-Pakete in die Debian Distribution integriert, oder es werden größere Debian Pakete komplett neu strukturiert.
  • Sie sollten diesen Zweig nur einsetzen, wenn Sie gute Kenntnisse über das Debian Paketmanagement haben (etwa nach der Lektüre dieses Buches ;-)).
  • Für diese Pakete gibt es keinen festgelegten Wert, wie sie in die Distribution aufgenommen werden.

Die vier Release-Varianten sind auf den Servern durch „Links“ mit den jeweiligen Release-Namen verbunden.

  • So ist beispielsweise momentan, kurz nach der Release von „Sarge“, „stable“ ein Link auf „Sarge“, „testing“ ein Link auf „Etch“ und „unstable“ ist immer ein Link auf „sid“. „sid“ steht für „still in development“.
# 
ftp> ls -l
227 Entering Passive Mode (128,101,80,133,219,159)
150 Here comes the directory listing.
lrwxrwxrwx    1 1176     1176            5 Jun 01 19:38 Debian3.0r6 -> woody
lrwxrwxrwx    1 1176     1176            5 Jun 06 18:33 Debian3.1r0 -> sarge
-rw-rw-r--    1 1176     1176          449 Jun 06 17:41 README
drwxrwsr-x    5 1176     1176         4096 Jul 30 19:34 etch
drwxrwsr-x    5 1176     1176         4096 Jul 30 19:34 etch-proposed-updates
lrwxrwxrwx    1 1176     1176           23 Jan 13  2005 experimental -> ../project/experimental
lrwxrwxrwx    1 1176     1176            5 Jun 06 18:33 oldstable -> woody
lrwxrwxrwx    1 1176     1176           22 Jun 06 18:33 proposed-updates -> sarge-proposed-updates
drwxrwsr-x    5 1176     1176         4096 Jun 16 19:34 sarge
drwxrwsr-x    5 1176     1176        12288 Jul 30 19:33 sarge-proposed-updates
drwxrwsr-x    5 1176     1176         4096 Jul 30 19:35 sid
lrwxrwxrwx    1 1176     1176            5 Jun 06 18:33 stable -> sarge
lrwxrwxrwx    1 1176     1176           22 Jun 06 18:33 stable-proposed-updates -> sarge-proposed-updates
lrwxrwxrwx    1 1176     1176            4 Jun 06 18:33 testing -> etch
lrwxrwxrwx    1 1176     1176           21 Jun 06 18:33 testing-proposed-updates -> etch-proposed-updates
lrwxrwxrwx    1 1176     1176            3 Jan 13  2005 unstable -> sid
drwxrwsr-x    5 1176     1176         4096 May 31 20:55 woody
drwxrwsr-x    5 1176     1176        57344 Jun 06 17:42 woody-proposed-updates
Frozen

Kurz vor einem neuen Release gibt es für kurze Zeit noch ein weiteres Release: „frozen“.

  • Es stellt den eingefrorenen Zustand einer „testing“-Distribution dar, kurz bevor diese zu „stable“ wird.
  • In einem „frozen“-Status, kurz vor der Freigabe eines neuen Release, wird kein neuer Code mehr akzeptiert.
  • Es werden lediglich bei Bedarf Bugfixes eingepflegt.
  • Es wird ein neuer Verzeichnisbaum im dists/-Verzeichnis angelegt und einem neuen Kodenamen zugeordnet.
  • Die eingefrorene Distribution durchläuft nun einige Monate lang Tests mit zwischenzeitlichen Updates und Zwischenversionen, die „Test-Zyklen“ genannt werden.

Distribution

Die so genannten „Distributionen“ innerhalb der gesamten Debian GNU/Linux-Distribution bezeichnen verschiedene Bereiche, die sich durch die Lizenzen unterscheiden, unter denen die Pakete in diesen Bereichen stehen.

Main Dies ist der Hauptbestandteil von Debian.
  • Diese Pakete sind unter einem Copyright veröffentlicht, das eine freie Weiterverteilung ermöglicht, und enthalten den vollständigen Quellcode.
Contrib Die Pakete in diesem Verzeichnis sind für sich frei, jedoch benötigen sie nicht-freie (Non-Free) Software oder Bibliotheken, um zu funktionieren.
  • Sie können daher nicht in den Bereich „main“ von Debian GNU/Linux einfließen.
Non-Free Pakete in diesem Verzeichnis müssen nicht unbedingt Geld kosten, jedoch haben sie einige Bedingungen, die eine Weiterverteilung der Software einschränken.
  • Beispielsweise kann ein Autor die Verbreitung der Software auf CD-ROM untersagen.

Architektur

Hier finden Sie eine Übersicht einiger von Debian GNU/Linux unterstützten beziehungsweise in der Entwicklung befindlichen Architekturen.

Bitte beachten Sie auch, dass nicht alle Architekturen auf CD-ROM im Handel erhältlich sind.

  • Am einfachsten sind CDs für die i386-Architektur zu bekommen.
  • Dies ist sowohl im Heimbereich als auch bei professionellen Anwendern die am weitesten verbreitete Hardware-Plattform.

Eine komplette Übersicht finden Sie unter http://www.debian.org/ports/.

Intel x86 / IA-32 (i386) Die erste Architektur und nicht direkt eine Portierung.
  • Mit dieser Architektur begann alles.
  • Linus Torvalds entwickelte auf Basis von Minix die ersten Zeilen Sourcecode zu Linux auf einem i386-Prozessor.
  • Debian unterstützt alle IA-32-Prozessoren, hergestellt von Intel, AMD, Cyrix und weiteren Herstellern.
Intel IA-64 (ia64) Zum ersten Mal offiziell mit Debian 3.0 freigegeben.
  • Dieses ist die Portierung auf Intels 64-Bit-Architektur.
S/390 (s390) Zum ersten Mal offiziell mit Debian 3.0 freigegeben.
  • Dieses ist die Portierung auf IBM S/390-Server.
DEC Alpha (alpha) Das erste Release erfolgte mit Debian 2.1.
  • Eine der länger bestehenden Portierungen und ziemlich stabil.
ARM (arm) Eine neue Portierungsbestrebung, motiviert durch Rebels (ehemals Corel) interessante „NetWinder“-Maschine.
Motorola 68k (m68k) Das erste Release dieser Portierung erfolgte mit Debian 2.0.
  • Der Debian m68k-Port läuft auf einer großen Bandbreite von Computern, die auf der Motorola 68k-Prozessorfamilie basieren - im Besonderen die Sun3-Workstation-Familie, die Apple Macintosh Personal-Computer und die Atari und Amiga Personal-Computer, aber auch einige aus dem Industriebereich stammenden VME-Bus-Boards.
MIPS (mips) Zum ersten Mal offiziell mit Debian 3.0 freigegeben.
  • Debian wird auf die MIPS-Architektur portiert, die in SGI-Computern (debian-mips - big-endian) und Digital Decstations (debian-mipsel - little-endian) verwendet wird.
Motorola/IBM PowerPC (powerpc) Diese Portierung läuft auf vielen Apple Macintosh PowerMac-Rechnern und kann auch auf den meisten Motorola-Computern laufen. Ältere Macintosh-Rechner benutzen die m68k-Prozessoren; diese werden nicht als PowerMac bezeichnet.
  • Debian/PowerPC wurde mit Debian 2.2 (Potato) das erste Mal offiziell veröffentlicht.
  • Die Portierung läuft auf vielen der Apple Macintosh PowerMac-Modelle, den CHRP- und den PReP-Rechnern.
HP PA-RISC (hppa) Zum ersten Mal offiziell mit Debian 3.0 freigegeben.
  • Dieses ist eine Portierung auf die PA-RISC-Architektur von Hewlett-Packard, die sich in einem weit entwickelten Stadium befindet.
Sun SPARC (sparc) Zum ersten Mal mit Debian 2.1 veröffentlicht.
  • Diese Portierung läuft sowohl auf der SPARCstation-Familie von Workstations als auch auf einem Teil ihrer Nachfolger in der Sun4-Architektur.
Sun UltraSPARC (sparc64) Dies ist auch der Beginn einer Portierung auf die Sun UltraSPARC-(sun4u-) Workstation-Familie.
  • Dieser 64-Bit-Prozessor hat den Vorteil der Rückwärtskompatibilität zu seinem Vorgänger, so dass die UltraSPARC-Portierung in der Lage sein wird, Sparc-Binärfiles auszuführen.
  • Dieses Projekt braucht zurzeit Entwickler.
  • Wenn Sie einen UltraSPARC-basierenden Computer haben und helfen möchten, senden Sie bitte eine E-Mail an die Liste unter debian-ultralinux@lists.debian.org, um Ihre Mitarbeit anzubieten.
Debian GNU/Hurd (hurd-i386) GNU/Hurd ist ein völlig neues Betriebssystem, das von der GNU-Gruppe aufgebaut wird.
  • In der Tat ist GNU/Hurd die letzte Komponente, die es möglich macht, ein komplettes GNU-Betriebssystem aufzubauen, und Debian GNU/Hurd wird ein solches (vielleicht sogar das erste) GNU-Betriebssystem sein.
  • Das gegenwärtige Projekt ist auf der i386-Architektur aufgebaut, aber Sie können erwarten, dass die anderen wenig später folgen werden.
Debian GNU/NetBSD (netbsd-i386 und netbsd-alpha) Dies ist eine Portierung des Debian Betriebssystems inklusive apt, dpkg und GNU-Software auf den NetBSD-Kernel.
  • Sie befindet sich im Augenblick in einem sehr vorläufigem Stadium, aber da NetBSD ein Produktionslevel-Kernel ist, sollte sich die Verwendbarkeit von Debian GNU/NetBSD sehr rasch entwickeln.
  • Im Augenblick ist Debian GNU/NetBSD für Intel x86 am weitesten fortgeschritten, aber die Arbeit an der Unterstützung für Alpha-basierende Computer hat bereits begonnen.
Debian GNU/FreeBSD (freebsd-i386) Dies ist eine Portierung des Debian Betriebssystems auf den FreeBSD-Kernel.
  • Sie befindet sich im Augenblick in einer Vorentwicklungsphase.
Debian Beowulf Obwohl nicht wirklich eine Portierung, so wird Beowulf doch ein Ersatz für viele Großrechner in Forschung und Entwicklung sein.
  • Deshalb scheint hier der richtige Platz zu sein, um es zu erwähnen.
  • Dieses Projekt arbeitet daran, Beowulf-Cluster unter Debian laufen zu lassen.

Gruppen

Jedes Paket der Debian Distribution kann vom Betreuer (Maintainer) einem bestimmten Bereich zugeordnet werden.

  • Diese Bereiche beschreiben den hauptsächlichen Einsatzort bzw.
  • den Einsatzbereich.
  • Innerhalb eines Frontends zur Paketinstallation (beispielsweise dselect) können dann die Pakete entsprechend dieser Zuordnung ausgewählt werden.

Diese Struktur lässt sich auf den FTP-Servern oder den Debian CD-ROMs nicht ohne Weiteres zurückverfolgen, wenn nach einem Paket gesucht wird.

  • Die Bereiche sind in den Dateien Packages.gz vermerkt und werden vom Frontend auf die tatsächlichen Pfade umgesetzt.
  • Die Pakete selbst befinden sich in einer einfachen Dateisystemstruktur, die wie folgt aufgebaut ist: /pool/main/a/paketname/paket.deb.

Doch nun zu den Bereichen:

Administration Programme zur Systemadministration
Base Teile des Basissystems, wie zum Beispiel verschiedene Kernel
Communication Terminalprogramme usw.
Development Diverse Programmiersprachen, Compiler, Interpreter, Header-Dateien (C und C++) usw.
Documentation HOWTOs, FAQs und andere Dokumentation sowie Programme, um diese zu lesen
Editors Textverarbeitungsprogramme, Editoren für Programmierer
Electronics Simulatoren für elektronische Schaltungen usw.
Games Spiele
Graphics Grafikprogramme
Ham Radio Programme für Amateurfunker
Interpreters Interpreter wie Perl, Python und Tcl/Tk
Libraries Bibliotheken, die von verschiedenen Programmen genutzt werden
Mail Alles rund um E-Mail.
  • Mailserver, Mailprogramme usw.
Mathematics Mathematische und wissenschaftliche Programme
Miscellaneous Diverses, was sonst nirgends hineinpasst
Network Netzwerkserver und Clientprogramme
Newsgroups Software für öffentliche Diskussionsforen
Old Libraries Ältere Versionen von Bibliotheken
Other Operating Systems and File Systems Zugriff auf andere Betriebs- oder Dateisysteme
Shells Verschiedene Shells
Sound Alles für den guten Ton
TeX Donald Knuths Schriftsatzprogramm
Text Processing Werkzeuge zum Umgang mit Textdateien
Utilities Verschiedene Werkzeuge
Web Programme für das WWW, Server und Clients
X Window X-Server, Window-Manager und anderes

Backports

Backporting (Rückportierungen) bezeichnet den Prozess der Rückportierung von Software-Paketen aus einem neueren Release in ein älteres Release.

  • Es gibt zwei wesentliche Gründe dafür, Pakete aus anderen Releases zu portieren:

Durch den langen Release-Zyklus der stabilen Debian Version ist es manchmal wünschenswert, auf Software-Pakete aus „testing“ oder „unstable“ zuzugreifen.

  • Dies ist leider nicht direkt ohne Weiteres möglich, da Abhängigkeiten zwischen den Paketen nicht erfüllt werden.
  • Mitunter sind beispielsweise Bibliotheken nicht mehr in den benötigten Versionen in einer neueren Release vorhanden.

Auch kann eine individuelle Konfiguration bei der Übersetzung bestimmter Software-Pakete gewünscht sein.

  • Hierfür ist aber nur in wenigen Fällen ein wirklicher Backport notwendig, es kann auch auf die Version aus dem verwendeten Release zurückgegriffen werden.

Detaillierte Informationen darüber, welche Schritte für das Backporting notwendig sind, finden Sie im Backporting-HOWTO.


Anhang

Siehe auch


Dokumentation

Links

Projekt
Weblinks