Pisi Pakete

Aus PardusWiki

Wechseln zu: Navigation, Suche

Vorlage:Under Construction

Inhaltsverzeichnis

[bearbeiten] Erstellen von PiSi Paketen

[bearbeiten] 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

[bearbeiten] Erstellen eines PiSi Paketes

Um ein PiSi Paket zu erstellen, müssen mindestens zwei Dateien von Hand geschrieben werden: pspec.xml and actions.py

[bearbeiten] 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

[bearbeiten] 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>

[bearbeiten] 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/

Persönliche Werkzeuge
Andere Sprachen