FANDOM


Diese Anleitung erklärt Euch, wie Ihr ein Source-Paket 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:

  $ su
  Password: enter your root password
  #  sed -i -e 's%<repositories>%&\n<repository>Pfad zu Deiner lokalen Repository</repository>%' /etc/upkg.conf

Sich die Quellcode 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). Seit der Version 0.236 werden auch tgz-Archive unterstützt. 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 $REPOSITORYVERZEICHNIS/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">

Ist Dein Archiv ein tgz-Archiv und Du hast mindestens die Version 0.236 von UPKG installiert kannst Du UPKG dies folgendermaßen mitteilen:

<archive name="gftp-$VERSION" type="tgz">

Dann würde UPKG nach gftp-2.0.18.tgz suchen.

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 FTP Client</description>
  	<releases>
  		<release version="2.0.18" revision="1" branch="testing">
  			<build>
  				<script>
  					<archive name="gftp-$VERSION">
  						<cmd>./configure --prefix=/usr --mandir=/usr/share/man --disable-textport</cmd>
  						<cmd>make -j 2</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.

Die finale gftp.xml würde so aussehen:

  <?xml version="1.0"?>
  <package name="gftp">
  	<description>GNOME FTP Client</description>
  	<releases>
  		<release version="2.0.18" revision="1" branch="testing">
  			<settings>
  				<environment name="LDFLAGS">$LDFLAGS -Wl,--as-needed</environment>
  			</settings>
  			<deps>
  				<dep name="glib-2.0"/>
  				<dep name="gtk+-2.0"/>
  				<dep name="openssl"/>
  			</deps>
  			<build>
  				<script>
  					<archive name="gftp-$VERSION">
  						<cmd>./configure --prefix=/usr --mandir=/usr/share/man --disable-textport</cmd>
  						<cmd>make -j 2</cmd>
  						<cmd>make install</cmd>
  					</archive>
  				</script>
  			</build>
  		</release>
  	</releases>
  </package>

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.

Störung durch Adblocker erkannt!


Wikia ist eine gebührenfreie Seite, die sich durch Werbung finanziert. Benutzer, die Adblocker einsetzen, haben eine modifizierte Ansicht der Seite.

Wikia ist nicht verfügbar, wenn du weitere Modifikationen in dem Adblocker-Programm gemacht hast. Wenn du sie entfernst, dann wird die Seite ohne Probleme geladen.