[Eisfair] Alte Lib-Pakete aufräumen

Stefan Puschek stefan.puschek at t-online.de
Fr Aug 2 20:34:42 CEST 2024


Hallo Marcus,

> > 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
> 

barbrady # ./unusedlibs
libalternatives1
libatomic_ops-dev-static
libcerf
libcroco-0_6-3 (package retired or not existing)
libdjvulibre21
libelf0
libfbclient2
libfftw3-3
libfpx1
libgc1
libglvnd
libheif1
liblqr-1-0
libmhash2
libnetfilter_conntrack3
libpcre16-0
libpdf6
libpdflite_6 (package retired or not existing)
libpipeline1
libpoppler131
libpq5
librsvg-2-2
libsgutils2-1_46-2 (package retired or not existing)
libsgutils2-1_48-2
libsodium23
libssl1_0_0
libstdcpp-libc6-2-2 <-- kann es sein, dass er die braucht :)
libsyslog0
libt1-5 (package retired or not existing)
libtiff5
libunistring2
libwmf-0_2-7
libxdmcp6
libxt6
libzio1

barbrady #

Groetjes
Stefan




Mehr Informationen über die Mailingliste Eisfair