flat screen monitor turned-on

Mein eigenes Kernel-Repository

Debian ist eine schöne Sache. Wirklich. Ich mag Debian – aber ab und an ist mir der alte, gut gereifte Kernel etwas zu alt. Aktuell liegt es an fstrim und da ich ohnehin schon einen eigenen Gentoo-Kernel für Debian baue, habe ich beschlossen das Ganze vernünftig zu machen und mir gleich noch einen Vanilla-Kernel zu bauen. Unschön ist dabei nur, jede deb-Datei händisch installieren zu müssen.

Damit dieses einzeln Installieren ein Ende hat, hilft nur ein sogenanntes Meta-Paket – ein Debian-Paket, das nur aus Abhängigkeiten besteht. Diese bauen wir mit dem Tool ‚Equivs‘, welches wir uns erstmal installieren müssen:

apt install equivs

Ist das Paket installiert, folgt das Erstellen der Paketkonfiguration:

equivs-control my-kernel-package

Dieser Befehl gibt uns eine Datei, die es anzupassen gilt – Augenmerk liegt dabei auf der Zeile „Depends:“, da wir dort unsere Abhängigkeiten, die gebauten Debian-Pakete, eintragen. Für den heute aktuellen Kernel sieht diese Datei wie folgt aus:

### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source: <source package name; defaults to package name>
Section: misc
Priority: optional
# Homepage: <enter URL here; no default>
Standards-Version: 5.9.10

Package: vanilla-kernel
Version: 5.9.10
Maintainer: Viktoria Rei Bauer <debian@example.com>
# Pre-Depends: <comma-separated list of packages>
Depends: linux-image-5.9.10,linux-headers-5.9.10,linux-libc-dev
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
Architecture: amd64
# Multi-Arch: <one of: foreign|same|allowed>
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
# Links: <pair of space-separated paths; First is path symlink points at, second is filename of link>
# Files: <pair of space-separated paths; First is file to include, second is destination>
# <more pairs, if there's more than one file to include. Notice the starting space>
Description: <short description; defaults to some wise words>
Meta-Package for vanilla kernel built based on debian .config

Nachdem die Datei geschrieben ist, gilt es das Debian-Paket zu bauen:

equivs-build my-kernel-package

Das Ergebnis ist eine schicke deb-Datei, die man dann in sein Repository hinzufügen kann. Ich selbst nutze dafür den Sonatype Nexus.

Auf den Client-PCs muss dann nur das Repository in die sources.list aufgenommen und der PGP Key importiert werden und schon steht der Installation nichts mehr im Wege.

Author:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert