[Eisfair] Alte Lib-Pakete aufräumen
Marcus Röckrath
marcus.roeckrath at gmx.de
Fr Aug 2 16:12:42 CEST 2024
Hallo Detlef,
Detlef Paschke wrote:
> eisfair64-dev # eisman query --format "{N}={V}" --installed "lib*" |
> grep "=3.2." | cut -d= -f1 | xargs -I "%1" eisman usage %1
> package: libasan6
> |<-- gcc10
> package: libcbor0_8
> package: libcbor0_9
> package: libicu69-ledata
> |<-- libicu69
> ...
>
> Nun müsste der Output von "eisman usage" aber nicht angezeigt werden,
> sondern unbenutzte Pakete wie libcbor0_8 oder libcbor0_9 an "eisman
> uninstall --auto" weitergegeben werden. Da hänge ich gerade ein wenig
> fest.
Ich würde eine solche Automatik, die direkt automatisiert rausschmeißt,
nicht mögen; ein kleiner Fehler und der Ärger kann groß werden.
Ich habe mir mal folgendes Skript geschrieben, um Libs zu entdecken, die
nicht required werden:
#/bin/bash
installedlibs=$(ls -1 /var/install/packages/lib* | \
grep -v "\-dev$" | \
grep -v "\-doc$" | \
grep -v "\-plugins$" | \
grep -v "\-prog$" | \
grep -v "\-tools$" | \
grep -v "\-utils$" | \
cut -d "/" -f 5)
for i in ${installedlibs}
do
if ! egrep -q "<linked-package>${i}[ <]" /var/install/packages/*
then
if ! egrep -q "<require-.*>${i}[ <]" /var/install/packages/*
then
if [ $(eisman usage ${i} | wc -l) -eq 1 ]
then
replacing=$(eisman query --outdated --
fields="name,substitude" | grep -B 1 ${i} | head -1 | awk '{ print $2 }')
if [ x${replacing} != "x" ]
then
if ! egrep -q "<linked-package>${replacing}[ <]"
/var/install/packages/*
then
if eisman query --quiet ${i}
then
echo ${i}
else
echo ${i} "(package retired or not existing)"
fi
fi
else
if eisman query --quiet ${i}
then
echo ${i}
else
echo ${i} "(package retired or not existing)"
fi
fi
fi
fi
fi
done
--
Gruß Marcus
[eisfair-Team]
Mehr Informationen über die Mailingliste Eisfair