Dummy Pakete für Debian mit equivs erstellen
Inhalt
- Installation von equivs
- Erstellen eines Dummy-Paketes
- Bauen des Dummy-Paketes
- 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 equivssollte 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.ctlDas 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:
- Section:
- Package:
- Provides:
- Description:
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.ctllauten. 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.debNach der Installation sollten die Abhängigkeiten im Paketmanager wieder erfüllt sein und alle Pakete können wieder normal installiert werden.