Kann hin und wieder hilfreich und sinnvoll sein. So habe ich etwa das Plex Home Theater auf Sid installiert, das „libass4“ verlangt und „libass5“ nicht akzeptiert.
Die Commands zum aus- und einpacken einer solchen Datei habe ich nicht im Kopf, dafür brauche ich es einfach zu selten. Google hilft mir, wenn es wieder soweit ist, zuverlässig.
Dieses mal führte die Suche mich zu einem kleinen Script:
„vi“ ersetze ich jedoch durch „nano“.
Die neue Datei lege ich als „debchanger“ in „/usr/local/bin“ ab:
sudo nano /usr/local/bin/debchanger
Der Inhalt des Scripts:
#!/bin/bash if [[ -z "$1" ]]; then echo "Syntax: $0 debfile" exit 1 fi DEBFILE="$1" TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1 OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb if [[ -e "$OUTPUT" ]]; then echo "$OUTPUT exists." rm -r "$TMPDIR" exit 1 fi dpkg-deb -x "$DEBFILE" "$TMPDIR" dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then echo DEBIAN/control not found. rm -r "$TMPDIR" exit 1 fi CONTROL="$TMPDIR"/DEBIAN/control MOD=`stat -c "%y" "$CONTROL"` nano "$CONTROL" if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then echo Not modfied. else echo Building new deb... dpkg -b "$TMPDIR" "$OUTPUT" fi rm -r "$TMPDIR"
Abschließend als ausführbar markieren:
sudo chmod +x /usr/local/bin/debchanger
Die Benutzung ist einfach: „debchanger package.deb“ verändert das Paket on-the-fly. Das neue Paket wird als „package-modified.deb“ im aktuellen Arbeitsverzeichnis abgelegt.