Manchmal will man spezielle Versionen eines Programms benutzen, die nur
als Quellcode verfügbar sind und nicht als Debian-Paket. Hier kann es
allerdings Probleme mit dem Paket-System geben. Angenommen Sie wollen
eine neue Version ihres Mailservers kompilieren und alles klappt, aber
viele Pakete in Debian hängen von einem MTA (Mail Transfer Agent) ab. Da
etwas installiert wurde, was Sie selbst kompiliert haben, weiss das
Paketsystem darüber nicht Bescheid.
Hier kommt das equivs ins Spiel. Um es zu benutzen, installieren Sie das
Paket mit diesem Namen. Es erstellt ein leeres Paket, das die
Abhängigkeiten erfüllt und dem Paketsystem mitteilt, so dass es keine
Probleme mit Abhängigkeiten gibt.
Bevor wir näher darauf eingehen, ist es wichtig, Sie darauf hinzuweisen,
dass es sicherere Möglichkeiten gibt, Programme, für die in Debian schon
Pakete existieren, mit anderen Optionen zu kompilieren und man equivs
nicht benutzen sollte, um Abhängigkeiten zu entfernen, ohne genau zu
wissen, was man tut. Siehe Das Arbeiten mit Quellpaketen für nähere
Informationen.
Lassen Sie uns mit dem MTA-Beispiel fortfahren. Sie haben also gerade
ihren frisch kompilierten postfix installiert und wollen nun mutt (ein
Mailprogramm) installieren. Plötzlich stellen Sie fest, dass mutt einen
anderen MTA installieren möchte, obwohl Sie schon ihren
selbstkompilierten MTA laufen haben.
Wechseln Sie in irgendein Verzeichnis (z. B. /tmp), und führen Sie
folgendes aus:
root@linux #
equivs-control name
|
Ersetzen Sie name durch den Namen der Kontrolldatei, die Sie erstellen
wollen. Die Datei wird wie folgt erstellt:
Section: misc
Priority: optional
Standards-Version: 3.0.1
Package: <Paketname; wenn nicht angegeben: equivs-dummy>
Version: <Versionsnummer; wenn nicht angegeben: 1.0>
Maintainer: <Ihr Name mit Emailadresse; wenn nicht angegeben: Benutzername>
Pre-Depends: <Pakete>
Depends: <Pakete>
Recommends: <Pakete>
Suggests: <Pakete>
Provides: <(virtuelles) Paket>
Architecture: all
Copyright: <copyright Datei; normalerweise GPL2>
Changelog: <changelog file; normalerweise ein generisches Changelog>
Readme: <README.Debian file; wenn nicht angegeben, ebenfalls ein generisches>
Extra-Files: <Zusätzliche Dateien für das doc-Verzeichnis, kommasepariert>
Description: <kurze Beschreibung; Standard ist "some wise words">
Lange Beschreibung und Info
.
Zweiter Paragraph
|
Nun muss das so angepasst werden, dass es tut, was wir wollen. Schauen
Sie sich die Felder und ihre Beschreibungen an, es ist nicht nötig,
jedes einzelne hier zu erklären, lassen Sie uns das Nötigste tun:
Section: misc
Priority: optional
Standards-Version: 3.0.1
Package: mta-local
Provides: mail-transport-agent
|
Das war es schon. mutt hängt von mail-transport-agent ab, was ein
virtuelles Paket ist, das alle MTAs liefern. Ich hätte das Paket einfach
mail-transport-agent nennen können, aber ich bevorzugte das Schema für
virtuelle Pakete, welches das Feld Provides benutzt.
Nun muss das Paket nur noch gebaut werden:
root@linux #
equivs-build name
dh_testdir touch build-stamp dh_testdir dh_testroot dh_clean -k # Add here commands to install the package into debian/tmp. touch install-stamp dh_testdir dh_testroot dh_installdocs dh_installchangelogs dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: building package `name' in `../name_1.0_all.deb'.
The package has been created. Attention, the package has been created in the current directory,
|
Und nun installieren Sie das erzeugte .deb.
Wie man unschwer erkennen kann, gibt es verschiedene Anwendungen für
equivs. Man könnte sogar ein Favoriten-Paket erstellen, was von den
Paketen abhängt, die Sie normalerweise installieren. Lassen Sie Ihren
Vorstellungen einfach freien Lauf, aber seien Sie vorsichtig.
Es ist wichtig zu erwähnen, dass es in /usr/share/doc/equivs/examples
einige Beispiel-Kontrolldateien gibt. Werfen Sie mal einen Blick
darauf.
|