Sunday, November 26, 2006

Packete für Paldo-Linux aus lokaler Repository installieren (german)

Diese Anleitung erklärt Euch, wie Ihr ein Source-Packet mit Upkg für Paldo erstellt und installieren könnt.

Die Paldo-Philosophy ist ja, ein Programm für eine Aufgabe. Nur manchmal ist man auf ein Programm angewiesen oder will ein bestimmtes seinem Paldo-System hinzufügen. Mit Upkg und einer lokalen Repository ist dies kein Problem.

Erstellung einer lokalen Paldo Repository

Zuerst benötigen wir eine Ordnerstruktur, wohin wir unsere Sourcen packen. Wo sich diese Struktur befindet ist egal. Ich hab meine im Home-Ordner.

[amnon@amsoft:~]$mkdir PaldoRepo
[amnon@amsoft:~]$mkdir PaldoRepo/binaries
[amnon@amsoft:~]$mkdir PaldoRepo/sources
[amnon@amsoft:~]$mkdir PaldoRepo/specs


Nun müssen wir Upkg noch mitteilen, wo es die Repository findet. Editiere Deine /etc/upkg.conf als Root. Sie sollte dann zum Beispiel so aussehen:

<span style="font-style:italic;"><?xml version="1.0" encoding="UTF-8"?>
<local>
<cachedir>/var/cache/upkg</cachedir>
<repositories>
<repository>http://www.paldo.org/paldo</repository>
<repository>/home/amsoft/PaldoRepo/</repository>
</repositories>
<branch>testing</branch>
<arch>x86</arch>
</local></span>


Sich die Source eines Programms besorgen

Nun ladest Du die Source von dem Programm herrunter, welches Du installieren möchtest. Ich nehme für dieses Beispiel den Tarball von gFTP her. Upkg benötigt das Source-Archiv als tar (tar-Datei) oder als tar.bz2-Datei (bzip2 komprimierte tar-Datei). Achte darauf, dass das Source-Archiv das entsprechende Dateiformat hat. Kopiere es dann in den sources-Ordner Deiner lokalen Repository.

Upkg wird das Packet nur finden, wenn Du's unter $REPOVERZEICHNIS/sources/$PACKETNAME speicherst.

Da mein Archiv sich gftp-2.0.18.tar.bz2 nennt, belasse ich es dabei und werde das Packet gftp nennen.

[amnon@amsoft:~/sources/gftp]ls
gftp-2.0.18.tar.bz2
[amnon@amsoft:~/sources/gftp]mv gftp-2.0.18.tar.bz2 ~/PaldoRepo/sources/gftp/


Falls Du doch tar.gz benutzen willst, musst Du diese Kompression Upkg mitteilen:

<archive name="gftp-$VERSION" compression="gz">

Erstellung der Spec-Datei für Upkg

Nun müssen wir Upkg mitteilen, wie der Packetmanager mit dem Quellcode umgehen soll. Dies geschieht durch eine simple XML-Datei. Der Name des Titels sollte der Packetname sein. Im Beispiel ist dieser gftp. Die Datei schaut wie folgt aus:

<?xml version="1.0"?>
<package name="gftp">
<description>GNOME grafical ftp client</description>
<releases>
<release version="2.0.18" revision="1" branch="stable">
<build>
<script>
<archive name="gftp-$VERSION">
<cmd>./configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --sysconfdir=/etc</cmd>
<cmd>make</cmd>
<cmd>make install</cmd>
</archive>
</script>
</build>
</release>
</releases>
</package>


Diese Datei wird dann in den specs-Ordner als gftp.xml gespeichert. Upkg benötigt die .xml-Endung, da es sonst das Packet nicht finden würde.

Falls Dein Packet Abhängigkeiten zu anderen Packet hat sieht die XML-Datei so aus:

<?xml version="1.0"?>
<package name="PACKETNAME">
<description>PACKETBESCHREIBUNG</description>
<releases>
<release version="VERSIONSNUMMER" revision="1" branch="stable">
<deps>
<dep name="ABHÄNGIGKEITSNAME"/>
<dep name="ABHÄNGIGKEITSNAME"/>
</deps>
<build>
<script>
<archive name="PACKETNAME-$VERSION">
<cmd>./configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --sysconfdir=/etc</cmd>
<cmd>make</cmd>
<cmd>make install</cmd>
</archive>
</script>
</build>
</release>
</releases>
</package>


Schaut auf unsere Hompage, um die Namen der Abhängigkeiten (Dependencies) herauszubekommen:
http://www.paldo.org/index-section-packages.html

Hier ein Beispiel:

<deps>
<dep name="libgnomeui-2.0"/>
<dep name="gtk+-2.0"/>
<dep name="glib-2.0"/>
<dep name="libglade-2.0"/>
<dep name="gstreamer-0.8"/>
</deps>


Wie man die Abhängigkeiten herausbekommt:


* Lese die Datei configure.in oder configure.ac in der Source-Distribution. Du wirst zum Beispiel diese Zeile finden: PKG_CHECK_MODULES(GNOME, libgnomeui-2.0 gtk+-2.0 >= 2.4.0 glib-2.0 >= 2.4.0 libglade-2.0 gstreamer-0.8,,exit). In diesem Fall ist es recht einfach die Abhängigkeiten herauszubkommen. Sie sind alle in der PKG_CHECK_MODULES-list gelistet. Paldo benutzt meist die gleichen Packetnamen. libgnomeui-2.0 ist in der Paldo-Repository auch unter libgnomeui-2.0 gelistet.
* Ließ die README, INSTALL,... Dateien. Manche Projekte listen dort die Abhängigkeiten auf.
* Kopiers von einer anderen Distribution. Falls nichts hilft kannst Du immer noch bei anderen Distributions nachschauen, was die für eine Abhängigkeitsliste haben.

Starten der Compilierung und Installation

Nun sind wir bereit das Packet zu compilen und das Programm somit zu installieren. Folgendes Kommando startet das Ganze:

[amnon@amsoft:~]#su
[amnon@amsoft:~]#password:
[root@amsoft:~]# upkg-build gftp
Generating script...
Writing script...
Executing script...
The following extra packages will be installed:
gftp

The following packages will be built from source:
gftp

Do you want to continue? [Y/n]
Building gftp-2.0.18-1 (stable)...
[root@amsoft:~]#


Wenn Du die Meldungen der Compilierung sehen willst starte die Installation mit:

[root@amsoft:~]# upkg-build --verbose gftp

Um das Packet wieder zu entfernen führe folgendes Kommando aus:

[root@amsoft:~]# upkg-remove gftp

Somit ist das Packet dann restlos von Deinem System deinstalliert.

0 Comments:

Post a Comment

<< Home