Debian Pakete erstellen

Die Dokumentation der Wahl zum Thema Pakete erstellen ist der "New Maintainer Guide" von Debian.

Debian Paket modifizieren (bei vorhandenem Debian-Source-Paket):

Software zum Erstellen von Paketen installieren:
[root]$ aptitutde install build-essential fakeroot

Abhängigkeiten, die zum Kompilieren von paket-foo benötigt werden, installieren:
[root]$ apt-get build-dep paket-foo

Möchte man ein Paket ohne Änderungen selbst bauen (z.B. Backport eines Paketes aus sid):
(deb-src Einträge in der sources.list nötig)
$ fakeroot apt-get -b source paket-foo

Für Modifikationen: Quellcode herunterladen und entpacken:
$ apt-get source paket-foo

Kompilieren und verpacken:
$ cd paket-foo-version
dpkg-buildpackage -rfakeroot -us -uc

Hat man die Quelldateien (paket-foo_*.dsc, paket-foo_*.tar.gz, paket-foo_*.diff.gz) von Hand heruntergeladen, kann man sie folgendermassen entpacken:
$ dpkg-source -x paket-foo_version-revision.dsc

Anschliessend kann man das Paket installieren:
[root]$ dpkg -i ../paket-foo_version-revision_arch.deb

Quick and Dirty (Software ohne DEBIAN-Verzeichnis):

Dies ist eine einfache Kommando-Merkliste ohne Erklärungen.
So erstellte Pakete sind nur für den Eigenbedarf und nicht zur Veröffentlichung in einem Repo geeignet (u.a. wg. fehlender "SourcePakete").
Man sollte wissen was man tut, dazu gehört auch:
Nicht als root arbeiten. Makefiles vorher kontrollieren (u.a. wg. DESTDIR Variable).

Software zum Erstellen von Paketen installieren:
[root]$ aptitude install build-essential fakeroot

Software downloaden und:
$ tar -xzf <software>-<version>.tar.gz
$ cd <software>-<version>
$ ./configure --prefix /usr
$ make
$ mkdir ../pkg
$ make DESTDIR=/path/to/pkg install
$ cd ..
$ mkdir pkg/DEBIAN
$ vi pkg/DEBIAN/control
$ fakeroot dpkg-deb --build pkg <software>-<version>.deb
Ggf. "Maintainer"-Skripte wie preinst, postinst, prerm, postrm in DEBIAN.

DEBIAN/control
Package: gradm 
Version: 2.1.11-200708011700-1
Section: admin
Priority: optional
Architecture: i386
Essential: no
Depends: libc6 (>=2.3.6), coreutils
Suggests: kernel-patch-grsecurity
Maintainer: Frank Remetter < @ >
Conflicts: gradm2 
Replaces: gradm2
Provides: gradm
Description: Administration program for the grsecurity2 RBAC based ACL system
 Used to manage the RBAC based ACL system of grsecurity2.
 Kernel patched with grsecurity is needed for this to work.
 More information about grsecurity at http://www.grsecurity.net/

DEBIAN/preinst
#!/bin/sh
set -e

if [ -c /dev/grsec ]
then
	rm /dev/grsec
fi
/bin/mknod -m 0622 /dev/grsec c 1 13;

DEBIAN/postrm
#!/bin/sh
set -e

if [ -c /dev/grsec ]
then
	rm /dev/grsec
fi

DEBIAN/conffiles
/etc/grsec/policy
/etc/grsec/learn_config

© 2001 - 2024 Frank Remetter