Debian Pakete kompilieren

Als Beispiel wird das Paket rsync genommen. Als erstes das META Paket build-essential installieren:

apt-get install build-essential

In ein Arbeitsverzeichnis wechseln:

cd /usr/local/src/

Quellpacket herunterladen

apt-get source rsync

Der Quellcode sowie Patchtes vom Paket rsync sollte jetzt im Verzeichnis /usr/local/src vorhanden sein:

ls -l
drwxr-xr-x 11 root root   4096 Jun 10 20:06 rsync-3.0.9
-rw-r--r--  1 root root  20766 Nov  8  2011 rsync_3.0.9-1debian1.diff.gz
-rw-r--r--  1 root root   1724 Nov  8  2011 rsync_3.0.9-1debian1.dsc
-rw-r--r--  1 root root 792725 Nov  7  2011 rsync_3.0.9.orig.tar.gz
rsync_3.0.9.orig.tar.gzQuellcode vom Projekt (rsync.samba.org)
rsync_3.0.9-1debian1.dsBeschreibung des Paketes
rsync_3.0.9-1debian1.diff.gzÄnderung von Debian
rsync-3.0.9Quellcode inkl. Patches ist die 1:1 Quelle des Paketes

Die build dependencies für rsync installieren:

apt-get build-dep rsync

In das rsync-3.0.9 Verzeichnis wechseln:

cd rsync-3.0.9

Packet kompilieren:

debian/rules

Die Binäre Datei erstellen (DEB Paket):

debian/rules binary

Im untergordnetem Verzeichnis sollte das fertig DEB Paket rsync_3.0.9-1debian_i386.deb vorhanden sein:

ls -l ..
drwxr-xr-x 11 root root   4096 Jun 10 20:15 rsync-3.0.9
-rw-r--r--  1 root root  20766 Nov  8  2011 rsync_3.0.9-1debian1.diff.gz
-rw-r--r--  1 root root   1724 Nov  8  2011 rsync_3.0.9-1debian1.dsc
-rw-r--r--  1 root root 355636 Jun 10 20:16 rsync_3.0.9-1debian1_i386.deb
-rw-r--r--  1 root root 792725 Nov  7  2011 rsync_3.0.9.orig.tar.gz

Quellcode bearbeiten und neu kompilieren

Packet devscripts installieren:

apt-get install devscripts

Als Beispiel einige configure Paremeter ändern:

vi debian/rules
       (cd debian/buildtree; ./configure --prefix=/usr --mandir='$${prefix}/share/man' --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) \
         --disable-acl-support \
         --disable-ipv6 \
         --disable-xattr-support)

Changelog Datei aktualisieren und beim Paketname eigene Bezeichnung verwenden, hier als Beispiel CUSTOM, somit wird der localpart gesetzt, falls das Paket später installiert wird, wird apt dieses Paket nicht mehr automatisch aktualisieren:

dch --local mypackage
rsync (3.0.9-1ubuntu1CUSTOM1) precise; urgency=low
 
  * local changes disable some features no atr, no xattr, no ipv6
 
 -- root <admin@mydomain.com>  Tue, 10 Jun 2014 20:29:00 +0200
 
rsync (3.0.9-1ubuntu1) precise; urgency=low
 
  * Mark rsync Multi-Arch: foreign.
 
 -- Steve Langasek <steve.langasek@ubuntu.com>  Tue, 08 Nov 2011 10:56:28 -0800

Paket kompilieren:

debian/rules clean && debian/rules

DEB Paket erstellen:

debian/rules binary

Im untergeordnetem Verzeichnis sollte das fertig DEB Paket rsync_3.0.9-1debian1CUSTOM1_i386.deb vorhanden sein:

ls -l ..
drwxr-xr-x 11 root root   4096 Jun 10 20:31 rsync-3.0.9
-rw-r--r--  1 root root  20766 Nov  8  2011 rsync_3.0.9-1debian1.diff.gz
-rw-r--r--  1 root root   1724 Nov  8  2011 rsync_3.0.9-1debian1.dsc
-rw-r--r--  1 root root 355636 Jun 10 20:16 rsync_3.0.9-1debian1_i386.deb
-rw-r--r--  1 root root 355636 Jun 10 20:16 rsync_3.0.9-1debian1CUSTOM1_i386.deb
-rw-r--r--  1 root root 792725 Nov  7  2011 rsync_3.0.9.orig.tar.gz

Sie haben weitere Fragen zu dieser Anleitung und möchten gerne mehr Informationen oder brauchen Unterstützung? Wir helfen Ihnen gerne, unsere Kontaktdaten finden Sie hier: https://df-informatik.ch/kontakt/