Duisburger Linux User Group - http://www.dulug.de

Stammtisch 05.11.2004: Softwaremanagement

Installation von Programmen von Hand

Debian-, RPM-Pakete und Sourcen

Keine Garantie auf Vollständigkeit und/oder Funktionalität!!!

Autor: M. Krüger

Das Debian Paketsystem

1 Die Debian-Distribution

1.1 Allgemeines

Debian verfügt ständig über drei Distributionen, Stable, Testing und Unstable. Stable ist momentan Debian 3.0, das auch als Woody bekannt ist, Testing ist momentan Sarge, aus Sarge wird Debian 3.1 Sarge, nachdem es stable geworden ist, Testing wird danach Etch. Unstable ist immer Sid, sid ist die Abkürzung für “still in development”.

Die Codenamen im Debianprojekt stammen alle aus dem Film “Toy Story”, so ist Woody der Spielzeugcowboy, Sarge ist der grüne Soldat. Sid stellt hier auch eine Besonderheit dar, Sid ist der böse Nachbarsjunge, der immer Spielzeug zerstört.

Es gibt eine Menge anderer Distributionen, die auf Debian basieren. Debian wird daher auch als Metadistribution bezeichnet, das ist eine Distribution, aus der es aufgrund des Umfanges und der Anlage besonders einfach ist, andere Distributionen zu erstellen. Beispiele für Debian-basierte Distributionen sind Xandros, Linspire, Ubuntu aber auch Knoppix und Kanotix.

Der Name Debian setzt sich übrigens aus den Vornamen des Gründers des Projektes Ian und seiner Frau Deborah Mordock zusammen. Debian wird deb-ien ausgespochen.

1.2 Die Unterteilung der Debian-Distributionen

Debian-Distributionen sind nochmals unterteilt in Architekturen, die bekannteste ist hier wahrscheinlich i386, also PCs, es gibt Debian aber auch für andere Architekturen wie zum Beispiel Sparc, PPC, Motorola und HP Risc-Prozessoren und etliche weitere. Daher ist es auch so schwierig, ein neues Debian-Release herauszubringen, ein neues Release wird erst stable, wenn es auf allen! Architekturen läuft.

Innerhalb einer Debian-Distribution gibt es nochmals “Distributionen”, verschiedene Bereiche, die sich durch die verwendeten Lizenzen der enthaltenden Pakete unterscheiden .

Main ist die Hauptdistribution von Debian, die Pakete aus Main unterliegen alle Lizenzen, die mit der sehr strengen “Debian Richtlinien für freie Software” genügen.

Contrib enthält Pakete, die selbst einer freien Lizenz unterliegen, allerdings auf Software zurückgreifen müssen, die nicht frei im Sinne des Debianprojektes sind. Hierunter fallen zum Beispiel Emulatoren, die auf ROMs des Emulierten Systems zugreifen müssen, die natürlich dann nicht freii sind.

Non-free enthält, wie der Name schon sagt, Software mit Lizenzen, die nicht frei sind, wie zum Biespiel die Nvidia-Treiber oder früher Netscape.

Non-US unterscheidet sich von den anderen “Distributionen”, es enthält Software, die aus irgendeinem Grunde nicht aus den USA exportiert werden darf wie einige Verschlüsselungssoftware. Non-US unterteilt sich seinerseits in main, contrib und non-free.

Abschließend gibt es noch Gruppen, wie zum Beispiel Base oder Administration oder Games und so weiter. Innerhalb dieser Gruppen wir die Software durch ihren Verwendungszweck gekennzeichnet, was das Suchen in den diversen Tools zur Softwareinstallation erleichtert.

2 Das Paketformat .deb und die Software dpkg

2.1 Das Format .deb

Das Debian-Paketformat .deb ist nichts anderes als ein Softwarearchiv (also vergleichbar mit einem Zip-Archiv ), allerdings werden dem Archiv noch wichtige Informationen beigefügt, die spezielle Software dann auslesen und verwerten kann. Hierzu gehören Die Software-Version, Informationen zu der Software wie die Beschreibung und Pfadinformationen aber auch Abhängigkeiten mit anderen .deb-Archiven, Konflikte mit anderen Archiven und sogar Informationen über Vorschläge zur Installation anderer .deb-Archive.

Aus diesen Informationen kann spezielle Software dann eine Datenbank aufbauen und diese Informationen für die Lebensdauer des Systems in dieser Datenbank speichern. Somit kann man ein konsistenstes EDV-System erhalten, das leicht zu pflegen und auf einem aktuellen und sicheren Softwarebestand aufbaut.

Ein solches Programm ist dpkg.

2.2 Das Programm dpkg

dpkg ist das Standardprogramm zur Installation von Software auf einem Debian-basiertem EDV-System . Genauer betrachtet ist dpkg nicht ein einzelnes Programm, sondern eine Sammlung von Programmen, die alle den Zweck haben, .deb-Pakete zu verwalten.

Alle anderen Programme, wie zum Beispiel apt oder das ältere dselect oder auch tasksel setzen auf dpkg auf um .deb-Pakete zu installiern und verwalten. So verwaltet apt die Quellen, aus der die Software kommt, dpkg verwaltet die einzelnen Pakete.

Ein paar Beispiele:

dpkg –help zeigt eine Übersicht über die Optionen des dpkg-Programs.Es sind eine Menge Optionen, eine Bildschirmseite reicht nicht aus. man dpkg ist natürlich informativer.

dpkg -l zeigt alle installierten Programme an. Ruft man es COLUMS=132 dpkg -l auf, so werden alle Informationen mit einer Zeilenbreite von 132 angezeigt.

dpkg -s zeigt den Status eines installierten Paketes.

dpkg -L zeigt alle Dateien an, die in einem installierten Paket enthalten sind.

dpkg -S zeigt an, zu welchem installierten Paket eine Datei gehört. Beispiel dpkg -L /bin/bash.

dpkg -C zeigt an, ob im System Pakete existieren, die während der Installation nicht vollständig konfiguriert worden sind, weil zum Beispiel ein Softwarefehler vorlag. Ist der Fehler behoben, kann man solche Pakete mit dpkg –configure –pending reparieren.

dpkg –get-selections gibt eine Übersicht über die installierte Software und deren Status an. Man könnte dies mit dpkg –get-selections > meine_pakete.txt in eine Textdatei schreiben und editieren. Danach könnte man das Ergebnis mit dpkg –set-selections < meine_pakete.txt in die Paketdatenbank zurückschreiben. Dies ist eine einfache Möglichkeit um eine Debian-Konfiguration zu klonen.

2.3 Pakete installieren mit dpkg

Pakete werden mit dpkg installiert mit dem Aufruf dpkg -i <Paketname>. Der Paketname muß komplett eingegeben werden also mit der Endung .deb. Das Paket muß auf dem System vorliegen, man muß es also schon vorher aus einer Quelle auf das System kopiert haben.

Entfernt wird ein installiertes Paket mit dpkg -r <Paketname>. Es werden die ausführbaren Dateien, Bibliotheken usw. entfernt, jedoch nicht die Konfigurationsdateien. Will man diese auch entfernen, ruft man dpkg mit der Option -P auf, also dpkg -P <Paketname>. -P steht für Purge und entfernt alle Spuren einer Software vom System.

2.4 Ein Exkurs: Quellpakete

Jeder kennt das Problem, daß mit dem sogenannten Dreisatz configure, make, make install die Softwaredatenbank des Systems gehörig durcheinandergewürfelt wird. Man kann allerdings auch Quellen auf das eingene System kompilieren, indem man die Quellpakete der Distribution statt der Originalquellen verwendet. Bei RPM-basierten Distributionen sind dies die Source-RPMs, unter Debian-basierten Distributionen sind dies deb-src-Pakete, kurz dsc.

Will man ein solches Paket installieren, so muß man es erst einmal auf das System kopieren. Dies geht recht einfach mit apt-get source <Paketname>, z.B. apt-get source joe. Dazu muß man nicht einmal root sein. Nun muß man für Quellen ja auch Abhängigkeiten auflösen, dies geht in so einem Falle recht einfach, indem man als root apt-get build-depends joe eingibt. Es werden jetzt alle Pakete installiert, die benötigt werden um das Paket joe zu kompilieren.

Debian-Sourcepakete enethalten alle ein Verzeichnis debian, das man nach dem auspacken, was apt-get source freundlicherweise schon getan hat, untersuchen kann. Hier findet man immer eine Datei README.Debian, die alle Informationen zum weiteren Vorgehen enthält. Hat man mit Hilfe dieser Information alle Änderungen vorgenommen, oder wollte man nichts verändern, kann man aus dem Quellpaket ein Binärpaket .deb erstellen.

Man geht also in das Verzeichnis de Quellpaketes und gibt als root dpkg-buildpackage -us -uc ein, will man dies nicht als root machen geht auch ein fakeroot dpkg-buildpackage -us -uc. Fakeroot sorgt dafür, das alles geregelt abläuft, ohne daß man root sein muß. Danach sollte man ein Verzeichnis tiefer ein .deb-Paket finden. Dieses spielt man als root mit dpkg -i ein und die Paketdatenbank ist gerettet.

3 Abschließend

Debian hat ein mächtiges Paketverwaltungssystem, das es einem ermöglicht, Software sauber zu installieren und zu entfernen. Zusammen mit der Fülle an vorhandenen Softwarepaketen, die fast den gesammten Softwarebestand für Linux umfassen, kann man sich für jeden Zweck ein System bauen.

Abschließend sei gesagt, das man dpkg nur recht selten aufruft, meist verwendet man apt oder eines der Programme, die eine Oberfläche für Apt zur Verfügung stellen.

Apt ist natürlich ein Thema für sich, daher werde ich für apt einen gesonderten Workshop bis zum nächsten Stammtisch in auf die Webseite stellen, der sich mit diesem Thema und natürlich auch mit den diversen Softwarequellen für Debian befasst.

vgl. Debian Gnu/Linux Anwenderhandbuch von Frank Ronneburg, Version 3.0.1-1.

Tatsächlich kann man eine .deb-Datei ganz einfach mit dem Archivprogramm ar auspacken.

Es gibt nicht nur Debian Gnu/Linux, sondern beispielsweise auch Debian Gnu/Hurd und Debian Gnu/Netbsd, beide sind kein Linux.

Seite 4

Marek Franke

2004-11-11T20:12:16