Pisi Pakete
Inhaltsverzeichnis |
Erstellen von PiSi Paketen
Struktur eines PiSi 1.1 Paketes
Ein PiSi Paket ist im Grunde nur eine gezippte Datei. Laden wir mal eine herunter und nehmen sie auseinander:
$ wget http://paketler.pardus.org.tr/pardus-2007/knazar-0.2-3-3.pisi $ unzip knazar-0.2-3-3.pisi -d einpaket Archive: knazar-0.2-3-3.pisi inflating: einpaket/metadata.xml inflating: einpaket/files.xml inflating: einpaket/install.tar.lzma $ cd einpaket $ ls files.xml install.tar.lzma metadata.xml
- files.xml enthält die Dateinamen mit Pfaden, Typen, Dateigrössen und SHA1-Prüfsummen aller Dateien im Paket.
- metadata.xml enthält essentielle Informationen wie den Paketnamen, die Homepage, den Maintainer/Paketierer, etc.
- install.tar.lzma enthält komprimierte Dateien, welche so extrahiert werden können:
$ lzma d install.tar.lzma install.tar $ tar xvf install.tar
Erstellen eines PiSi Paketes
Um ein PiSi Paket zu erstellen, müssen mindestens zwei Dateien von Hand geschrieben werden: pspec.xml and actions.py
pspec.xml
Diese XML-Datei enthält mindestens drei Elemente: Source, Package, History Zu Deutsch: Quelle, Paket, Paketgeschichte (Bitte die deutschen Übersetzungen *nicht* in die Datei schreiben!)
Es können aber mehrere Elemente Paket enthalten sein.
Anders gesagt, ein Quellenpaket kann mehrere Binaries erzeugen. Pisi ist enorm flexibel :)
Am Beispiel hier: http://svn.pardus.org.tr/pardus/devel/desktop/kde/knazar/pspec.xml
Wie im Beispiel sichtbar ist,
- Source enthält essentielle Informationen.
- Package enthält RuntimeDependencies (Abhängigkeiten) und Orte von verschiedenen Dateien, AdditionalFiles (Zusätzliche Dateien) und Comarskripte wenn benötigt.
- History beinhaltet einfach nur - wie erwartet - die Geschichte des Pakets.
Eventuell ist die DTD für diese Dateien für Ihre Zwecke interessant: http://www.pardus.org.tr/projeler/pisi/pisi-spec.dtd
Installation von zusätzlichen Dateien der Dateien der Quellen
Das Paket kann den AdditionalFiles-Tag enthalten, welche benutzt werden, um Dateien aus dem files-Verzeichnis der Quellen in die .pisi-Datei zu kopieren.
Beispielsweise möchten Sie eine solche Dateihierarchie:
myproject/ myproject/files/somefile.config myproject/actions.py myproject/pspec.xml
In diesem Falle muss (eines der) Paket(e) folgendes haben:
<Package>
<Name>meinprojekt</Name>
<Summary>Kerndateien von MeinProjekt.</Summary>
<RuntimeDependencies>
<Dependency>irgendeine-bibliothek</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin</Path>
</Files>
<AdditionalFiles>
<AdditionalFile target="/etc/path/to/install" permission="0644"
owner="root">irgendeinedatei.cfg</AdditionalFile>
</AdditionalFiles>
</Package>
actions.py
Diese Datei enthält Python-Code welcher die Quellen kompiliert und in ein bestimmtes InstallDIR (Installationsverzeichnis) installiert (In diesem Beispiel /var/pisi/knazar-0.2-3-3/install/).
http://svn.pardus.org.tr/pardus/devel/desktop/kde/knazar/actions.py
In dieser Datei, wird actionsapi verwendet, welches standardmässig zu PiSi mitgeliefert wird. Actions API hat alle Funktionen, die zum kompilieren und installieren des Paketes benötigt werden.
Wenn Sie Python beherrschen (Und zwar gut!), können Sie hier die Quellen einsehen: http://svn.pardus.org.tr/uludag/trunk/pisi/pisi/actionsapi/
Nachdem pspec.xml und actions.py vorbereitet wurden, wird das PiSi Paket so gebaut:
sudo pisi build pspec.xml
In einem Terminal. Um mein Beispiel zu bauen, verwenden Sie:
sudo pisi bi http://svn.pardus.org.tr/pardus/devel/desktop/kde/knazar/pspec.xml
Andere offizielle Pakete können hier eingesehen und untersucht werden: http://svn.pardus.org.tr/pardus/devel/