[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