Sie sind nicht angemeldet.

[Tipps & Tricks] Bereinigung veralteter Libs

1

18.04.2010, 14:24

Bereinigung veralteter Libs

HINWEIS: das findlibcruft.sh ist obsolete. Der Nachfolger ist gentoo-decruft.sh


Hallo Leute,

wer noch das stabile Portage-2.1 nutzt, kennt das Problem:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
Old versions of installed libraries were detected on your system.
In order to avoid breaking packages that depend on these old libs,
the libraries are not being removed.  You need to run revdep-rebuild
in order to remove these old dependencies.  If you do not have this
helper program, simply emerge the 'gentoolkit' package.

  # revdep-rebuild --library libjpeg.so.7

Once you've finished running revdep-rebuild, it should be safe to
delete the old libraries.  Here is a copy & paste for the lazy:
  # rm '/usr/lib64/libjpeg.so.7'

Wenn man die Meldung übersieht, hat man eine "Leiche" im System, die schwer nachvollziehbare Probleme verursachen kann.

Weil ich aktuell auch ein Paar Probleme auf dem System habe, die ich nicht nachvollziehen kann, habe ich mir ein Check-Skript geschrieben. Folgendes kann man im Programm am Anfang einstellen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
logfile=/var/log/cruft.log

# Parallel equery
parallel=2

# FindLibCruft Mode: 
# logfile  logfile only (standard)
# revdep   logfile + revdep-rebuild
# move     logfile + revdep-rebuild + move file to *.cruft
# delete   logfile + revdep-rebuild + delete file
mode=move

# Rebuild Tool:
# revdep-rebuild from app-portage/gentoolkit
# reconcilio     from sys-apps/paludis
revtool=revdep-rebuild 



Das Programm arbeitet in zwei Schritten. Zuerst werden die Nicht-Symlink Dateien geprüft, ob sie durch Portage installiert wurden.
Im zweiten Schritt werden die Symlinks geprüft, ob diese noch auf vorhandene Dateien zeigen. (Ohne equery)

Falls man sich für den Modus "move" entscheidet, hier ist der Einzeiler, um die umbenannten Dateien nach der Prüfung zu löschen.

Quellcode

1
while read file; do rm "$file.cruft"; done < /var/log/cruft.log


Oder zurück umbenennen:

Quellcode

1
while read file; do mv "$file.cruft" "$file"; done < /var/log/cruft.log
»bell« hat folgende Datei angehängt:
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von »bell« (12.07.2010, 10:21)


2

18.04.2010, 20:09

"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

3

28.06.2010, 22:20

Neue Version. Da Paludis auch das Problem hat, habe ich jetzt optional "reconcilio" statt "revdep-rebuild" mit eingebaut.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

Verwendete Tags

cleanup, cruft, tool