Außerdem kann EPM Abhängigkeiten (incompat, provides, replaces, requires) verwalten und abhängig vom verwendeten Package-format auch benutzen.
Der Vorteil darin ist, man kann sehr simpel ein Paket beschreiben und daraus dann verschiedene Paketformate generieren.
Man wechselt man in sein Quellverzeichnis und legt eine Listdatei an, die die Metainformationen enthält:
~/foobar$ cat foobar.list
# Metainformationen
%product foobar
%copyright 2008 <your name>
%vendor John Doe
%license COPYING
%readme README
%description foobar script to do some very basic stuff.
%version 0.4
# Installationsdaten
f 755 root root /usr/bin/foobar foobar
d 755 root root /usr/share/doc/foobar -
f 444 root root /usr/share/doc/foobar/README README
Im Kopf müssen zunächst die folgenden Metainformationen definiert werden:
Produktname, Copyright Information, Hersteller, Lizenzdatei, README Datei, Kurzbeschreibung und Versionsnummer
Danach folgt, was mit den Quelldateien gemacht werden soll. Der Aufbau folgt dem folgenden Schema:
Typ Mode Owner Group Ziel Quelle Optionen
Typ kann z.B. sein Datei (f), Directory (d), Konfigurationsdatei (c), Softlink (l), Init-Script (i)
Im Beispiel oben wird also die Datei foobar nach /usr/bin kopiert mit den Rechten 755 und als root:root.
Danach wird noch das Verzeichnis /usr/share/doc angelegt und die README Datei dorthin kopiert.
Wenn man dies alles definiert hat, kann man sich ein Paket generieren lassen.
~/foobar$ epm -f portable foobar
Es wurde ein Paket im portablen Format erstellt, mit dem Namen foobar.
Jetzt wurde im Unterverzeichnis OS-Architecture(linux-2.6-intell) ein tar.gz Archiv erstellt. Das kann man entpacken und dann das vorhandene Script foobar.install zum Installieren verwenden und foobar.remove zum deinstallieren.
cd linux-2.6-intel/
~/foobar/linux-2.6-intel$ tar -xf foobar-0.4-linux-2.6-intel.tar.gz
~/foobar/linux-2.6-intel$ ls
foobar-0.4-linux-2.6-intel.tar.gz
foobar.license
foobar.remove
foobar.sw
foobar.install
foobar.readme
foobar.ss
Oder ein Debian-Paket erstellen?
~/foobar$ epm -f deb foobar
epm: Warning - file permissions and ownership may not be correct
in Debian packages unless you run EPM as root!
~/foobar$ ls linux-2.6-intel/
foobar-0.4-linux-2.6-intel.deb
Oder rpm?
~/foobar$ epm -f rpm foobar
~/foobar$ ls linux-2.6-intel/
foobar-0.4-linux-2.6-intel.rpm
Wie man sieht, muß man Debian Pakete als root generieren, sonst stimmen die Rechte später nicht. Man kann natürlich nur die Pakete installieren, wenn man die passenden Werkzeuge hat. So funktioniert z.B. out of the Box auf der Debian Kiste nicht:
~/foobar$ epm -f bsd foobar
Packaging failed!
Aber trotzdem eine echt lockere Art, Pakete für unterschiedliche Distributionen zu erstellen.
Mehr Informationen gibt es auf der Projektseite, z.B. das EPM Buch
