GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
7. Juli 2003

Dummy Pakete für Debian mit equivs erstellen

Inhalt

  1. Installation von equivs
  2. Erstellen eines Dummy-Paketes
  3. Bauen des Dummy-Paketes
  4. Installieren des erstellten Paketes

Wenn man Debian nutzt, kann es oft vorkommen, dass bestimmte Softwarepakete zu alt sind (besonders bei woody) und man sich die jeweilige Software lieber selbst kompilieren will. Das führt dann aber dazu, dass andere Pakete, die von diesem Paket abhängen, sich nicht mehr installieren lassen, ohne dass gerade das Paket nachgezogen wird, was man eigentlich selber kompilieren wollte. Die Lösung ist ein Dummy-Paket, und das kann man mit equivs erstellen. Ein anderes, konkreteres, Beispiel wäre, dass man aus irgendwelchen Gründen qmail als MTA einsetzen möchte. Auf Grund von Lizenzbestimmungen von qmail ist es aber schwer möglich qmail als Paket anzubieten. Man ist also gezwungen qmail von Hand zu installieren, nun verlangen aber viele Pakete bei Debian einen installierten MTA, bevor sie sich installieren lassen. Logischerweise weiß das Paketmanagement von Debian aber nichts vom gerade installierten qmail. Auch hier ist die Lösung wieder equivs.

1. Installation von equivs

Die Installation von equivs gestaltet sich Debiantypisch einfach, ein:

backdoor:/ $ apt-get install equivs
sollte ausreichen, um die Software zu installieren. Eventuell werden ein paar Pakete wie make oder fakeroot automatisch nachgezogen, falls diese nicht sowieso schon installiert sein sollten.

2. Erstellen eines Dummy-Paketes

Um ein Dummie-Paket zu erstellen, muss zunächst eine Datei mit den nötigen Informationen (Paketname, Version etc.) erzeugt werden. Am besten man schaut sich zunächst eine der Beispieldateien unter /usr/share/doc/equivs/examples an und versucht diese zu verwenden. Alternativ kann man sich auch eine komplett leere Template-Datei mit dem Befehl:

backdoor:/ $ equivs-control <Dateiname>

erstellen lassen. Die Template-Datei, die mit equivs-control erstellt wird, speist sich aus der Datei /usr/share/equivs/template.ctl, wenn man möchte, kann man also auch das Template anpassen. Bleiben wir beim qmail Beispiel und werfen einen Blick ins /usr/share/doc/equivs/examples Verzeichnis; hier gibt es bereits eine Datei mail-transport-agent.ctl. Mit dieser Datei könnten wir bereits ein Dummy-Paket erstellen, welches dann dem Paket-Manger vorgaukelt, dass ein MTA installiert ist.
Um die Sache aber etwas anschaulicher zu gestalten, wird hier der Weg über eine komplett leere Template-Datei beschrieben. Die leere Datei erstellt man also mit dem Kommando:
backdoor:/ $ equivs-control /tmp/qmail.ctl
Das Template sieht dann wie folgt aus:

Section: misc
Priority: optional
Standards-Version: 3.0.1

Package: <enter package name; defaults to equivs-dummy>
Version: <enter version here; defaults to 1.0>
Maintainer: <your name and email address; defaults to username>
Pre-Depends: <packages>

Depends: <packages>
Recommends: <packages>
Suggests: <package>
Provides: <(virtual)package>
Architecture: all
Copyright: <copyright file; defaults to GPL2>
Changelog: <changelog file; defaults to a generic changelog>

Readme: <README.Debian file; defaults to a generic one>
Extra-Files: <additional files for the doc directory, commaseperated>
Description: <short description; defaults to some wise words>
 long description and info
 .
 second paragraph

Diese Datei muss nun angepasst werden, dabei sind betimmte Einträge wichtig und bestimmte weniger wichtig. Zu den wichtigeren gehören:

alle anderen Einträge sind quasi fakultativ.
Ein angepasstes Template für qmail würde etwa so aussehen:

Section: mail
Priority: optional

Package: qmail-dummy
Version: 1.03
Provides: mail-transport-agent
Architecture: i386
Description: An MTA (Mail Transport Agent)
 .Dummy package for qmail 1.03.

3. Bauen des Dummy-Paketes

Nachdem man die Template-Datei erstellt hat, muss das Paket "gebaut" werden. Dies geschieht mit dem Befehl equivs-build, in unserem Beispiel würde das Kommando also:

backdoor:/ $ equivs-build /tmp/qmail.ctl
lauten. Zu beachten ist, dass das Paket, was erstellt wurde, sich in dem Verzeichnis befindet, in welchem der Befehl ausfgerufen wurde.

4. Installieren des erstellten Paketes

Die Installation des Paketes erfolgt mit dem dpkg Befehl.

backdoor:/ $ dpkg -i qmail-dummy_1.03_all.deb

Nach der Installation sollten die Abhängigkeiten im Paketmanager wieder erfüllt sein und alle Pakete können wieder normal installiert werden.