[Eisfair] Alte Lib-Pakete aufräumen

Stefan Puschek stefan.puschek at t-online.de
Fr Aug 2 20:40:56 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 #

und:
barbrady # eisman uninstall libpdflite_6
 
The following packages will be uninstalled:
 
version  status   name                   source
---------------------------------------------------------------------
1.0.2    stable   libpdflite_6           taken_from_/var/install
 
1 package(s) will free approx. 1 MB of disk space.
 
Continue (y/n) [yes]? 
Uninstallation of: libpdflite_6 (1.0.2) ...
 THIS PACKAGE IS PART OF THE SYSTEM!
 YOU CAN NOT REMOVE IT 
Failed to uninstall: libpdflite_6 (1.0.2)!
Package libpdflite_6 NOT removed!
barbrady # 

da fehlt wohl noch was in dem Skript :)

Aber die Liste ist klasse!

Groetjes
Stefan



Mehr Informationen über die Mailingliste Eisfair