ich hab das mal 2017 geschrieben und n Jahr später auch mal upstream vorgeschlagen, aber keine Antwort jenseits von "ACK, cool, mal anschauen" mehr bekommen - vermutlich, weils gerade eher sperrig und eher prototypisch umgesetzt ist. Dennoch find ich die Idee immer noch gut und dokumentierenswürdig - aber ich fänds noch cooler, das in lesbarer Form ins eigentliche Script zu integrieren: das Problem damit ist nämlich, dass ich ein Python-Script in die sonst bash-only Implementierung gebracht hab.
Fangen wir mit der Ausgabe an:
Im Original ist die Ausgabe Paket, Version. Siehe auch https://www.thomas-krenn.com/de/wiki/E- ... t_apticron
Damit konnte ich nicht viel anfangen - ich konnte das delta nicht sehen (bei stable nix wert, aber ich nutze testing...) und nachdem ich das hatte, fiel es mir schwer, das schnell einzuordnen, also kam die erste Spalte dazu, welche die Art der Änderung beschreiben soll (Epoch, Major, minor, patch, Debian-revision, debian-patch. Nicht alles hält sich daran - da gibts dann eben nix.
Code: Alles auswählen
The following packages are currently pending an upgrade:
______ bsd-mailx 8.1.2-0.20160123cvs-4 -> 8.1.2-0.20180807cvs-1
___p__ bsdutils 1:2.32-0.4 -> 1:2.32.1-0.1
__mpDd cmake 3.11.2-1+b1 -> 3.12.1-1
__mp__ cmake-data 3.11.2-1 -> 3.12.1-1
___p__ fdisk 2.32-0.4 -> 2.32.1-0.1
____D_ fonts-opensymbol 2:102.10+LibO6.1.0~rc2-3 -> 2:102.10+LibO6.1.0-1
__mp__ gimp 2.8.22-1 -> 2.10.2-1
__mp__ gimp-data 2.8.22-1 -> 2.10.2-1
______ gtk2-engines-qtcurve 1.8.18+git20160320-3d8622c-5+b3 -> 1.8.18+git20160320-3d8622c-5+b4
___p__ libblkid1 2.32-0.4 -> 2.32.1-0.1
___p__ libblkid1:i386 2.32-0.4 -> 2.32.1-0.1
E_mpDd libexiv2-14 (none) -> 0.25-4
___p__ libfdisk1 2.32-0.4 -> 2.32.1-0.1
E_mpDd libgegl-0.4-0 (none) -> 0.4.6-1
E_mpDd libgegl-common (none) -> 0.4.6-1
E_mpDd libgexiv2-2 (none) -> 0.10.8-1
__mp__ libgimp2.0 2.8.22-1 -> 2.10.2-1
____D_ libgpod4 0.8.3-11 -> 0.8.3-12
EMmpDd libheif1 (none) -> 1.3.2-1
____D_ libllvm6.0 1:6.0.1-2 -> 1:6.0.1-3
____D_ libllvm6.0:i386 1:6.0.1-2 -> 1:6.0.1-3
___p__ libmariadbclient18 1:10.1.34-1 -> 1:10.1.35-1
Code: Alles auswählen
PKGPATH="/${DIRCACHE}/archives/"
for PKG in $PKGNAMES ; do
VER=`LC_ALL=C /usr/bin/apt-cache policy $PKG |\
/bin/grep Candidate: | /usr/bin/cut -f 4 -d \ `
VERFILE=`echo "$VER" | /bin/sed -e "s/:/%3a/g"`
if ls ${PKGPATH}${PKG}_${VERFILE}_*.deb >& /dev/null ; then
DEBS="$DEBS ${PKGPATH}${PKG}_${VERFILE}_*.deb"
fi
echo -e "\t"$PKG $VER
done
Code: Alles auswählen
PKGPATH="/${DIRCACHE}/archives/"
for PKG in $PKGNAMES ; do
VER=`LC_ALL=C /usr/bin/apt-cache policy $PKG |\
/bin/grep Candidate: | /usr/bin/cut -f 4 -d \ `
CUR_VER=`LC_ALL=C /usr/bin/apt-cache policy $PKG |\
/bin/grep Installed: | /usr/bin/cut -f 4 -d \ `
echo "${CUR_VER} ${VER} ${PKG}"
done) | tee /tmp/apticron_versions.txt | /usr/local/bin/parse_debian_versions.py | column -t
for PKG in $PKGNAMES ; do
VER=`LC_ALL=C /usr/bin/apt-cache policy $PKG |\
/bin/grep Candidate: | /usr/bin/cut -f 4 -d \ `
VERFILE=`echo "$VER" | /bin/sed -e "s/:/%3a/g"`
if ls ${PKGPATH}${PKG}_${VERFILE}_*.deb >& /dev/null ; then
DEBS="$DEBS ${PKGPATH}${PKG}_${VERFILE}_*.deb"
fi
done
Ob man das gut zu awk oder so portiert bekommt? apticron hat nicht gerade viele Abhängigkeiten - deswegen ist python da eher uncool.