Apt-dater-host auf alten Debian-Versionen
Zur Navigation springen
Zur Suche springen
Apt-dater ist ein praktisches Tool zum Verwalten von Debian Installationen. Auf den Clients wird ein Perl-Script benötigt, apt-dater-host mitsamt seinen notwendigen Modulen.
Aufgabenstellung war, zwei historische Systeme, Debian Woody (3.0) und Sarge (3.1) in apt-dater einzubinden.
- Einfach installieren
- Schlägt fehl, Paket gab es damals schlicht noch nicht.
- Fertiges Paket von Debian 10 kopieren, installieren mit
dpkg -i
- Schlägt fehl: Kompressionsmethode xz nicht bekannt.
- Kopieren der fertigen Dateien (ist ja nur Text).
tar cvf /tmp/adh.tar /etc/apt/apt.conf.d/99apt-dater-host_periodic /etc/apt-dater-host.conf /usr/bin/apt-dater-host /usr/share/doc/apt-dater-host /usr/share/man/man1/apt-dater-host.1.gz; scp /tmp/adh.tar …
- Auspacken auf der Zielmaschine mit
cd /; tar xvf /tmp/adh.tar
. - Testlauf fällt auf die Nase, Perl-Modul für apt-handling fehlt.
apt-get install libapt-pkg-perl
- Testlauf fällt auf die Nase, weiteres Perl-Modul für bin-ich-Blech-oder-VM fehlt.
- Gibt's nicht als Package, Funktionalität aus Script entfernen:
--- /usr/bin/apt-dater-host 2018-01-24 15:08:04.000000000 +0100 +++ apt-dater-host.sauber 2020-06-01 21:39:34.008222165 +0200 @@ -28,7 +28,6 @@ use AptPkg::Config '$_config'; use AptPkg::System '$_system'; use AptPkg::Cache; -use ImVirt; use strict; use warnings; @@ -125,10 +124,6 @@ } } -sub get_virt() { - return imv_get(IMV_PROB_DEFAULT); -} - sub get_uname() { my $kernel; my $machine; @@ -168,9 +163,6 @@ } print "LSBREL: $lsb{'Distributor ID'}|$lsb{'Release'}|$lsb{'Codename'}\n"; - # retrieve virtualization informations - print "VIRT: ".&get_virt."\n"; - # retrieve uname informations print "UNAME: ".&get_uname."\n";
- Testlauf fällt nur bei Woody auf die Nase, da kein dpkg-query existiert.
- Dumme Nachbildung von dpkg-query in /usr/local/bin
#!/bin/bash # Satisfy apt-dater for running with Debian Woody TMPFILE="/tmp/dpkg-query.$$" touch ${TMPFILE} chmod 600 ${TMPFILE} for PKG in `dpkg -l |sed -n '6,$p' |awk '{print $2}'`; do dpkg -s ${PKG} > ${TMPFILE} VERSION="`grep ^Version: ${TMPFILE} |sed 's/^Version: //'`" STATUS="`grep ^Status: ${TMPFILE} |sed 's/^Status: //'`" printf "%s\t%s\t%s\n" "${PKG}" "${VERSION}" "${STATUS}" done rm -f ${TMPFILE}
- Testlauf
- OK