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