• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

System aufräumen

HESCHY

Member
Hey Leutz,

Wie kann man ein "System aufräumen" d.h. nicht mehr benötigte Pakete deinstallieren.

Wenn ich z.B. mittels Smart das Programm "ABC" installiere wird durch die Abhängigkeiten "DEF" u. "GHI" mit installiert, wenn ich das Programm nicht mehr benötige und "ABC" deinstalliere, bleiben "DEF" "GHI" auf dem System, und wird von keinem weiteren Programm benötigt.

Wie bekomme ich diese Programme vom System ???

Ach so in der SuFu habe ich nichts passendes gefunden.

THX im vorraus.
 

BoeMatic

Newbie
Das würd mich auch mal interessieren. Unter Debain gibt's da ein tool mit dem man unbenötigte Pakete entfernen kann. Heißt debfoster oder so... :D
 

eet

Member
Das hilft jetzt nicht beim nachträglichen Aufräumen, aber vielleicht deinstalliert man sauberer mit rug/ZMD? Bei mir hat es jedenfalls zusammen mit Totem (gstreamer) auch direkt das Totem-Plugin deinstalliert.

Probier doch einfach mal
$ rug rm ABC
und lass es uns wissen.
 
OP
H

HESCHY

Member
eet schrieb:
Das hilft jetzt nicht beim nachträglichen Aufräumen, aber vielleicht deinstalliert man sauberer mit rug/ZMD? Bei mir hat es jedenfalls zusammen mit Totem (gstreamer) auch direkt das Totem-Plugin deinstalliert.

Probier doch einfach mal
$ rug rm ABC
und lass es uns wissen.

Das Problem ist das ich einige Programme schon deinstalliert habe und das jetzt nicht funzt.

Es muss doch irgend eine Möglichkeit geben in der man sich alle Pakete die nicht benötigt werden auflisten bzw. deinstallieren kann.
 
OP
H

HESCHY

Member
jengelh schrieb:
Aber wie definierst du 'nicht verwendet'?

Bsp. Ich nehme Smart und installiere DVD Styler
da möchte DVD Styler aber noch andere Pakete habe (die sich bestimmt keiner aufschreibt ) siehe Screen.

screen002.png


Wenn mir jetzt der DVD Styler nicht gefällt und ihn nicht mehr auf dem System haben möcht lösche ich den DVD Styler aber die anderen Pakete bleiben auf dem System ohne das sie von irgend einem anderen Programm genutzt werden. Und wenn ich mir diese nicht notiere dann finde ich die nur mit viel mühe bzw garnicht.

Hoffe ist jetzt ein wenig verständlicher .

THX
 
A

Anonymous

Gast
fangen wir mal ganz unten an:

bei den Dateien!


4.10 Verwaiste und rechtelose Dateien

Dateien, die von jedermann beschrieben werden können, stellen ein sehr großes Sicherheitsrisiko dar. Deshalb sollten so wenig wie möglich solcher Dateien existieren (Gruppenrechte einsetzen!). Mit find lassen sich solche Dateien aufspüren und nach sorgfältiger Kontrolle kontrolliert löschen:
Code:
root@linux # find / -perm -o+w -a ! -type l -ls >/tmp/rechtlose-files
Verwaiste Dateien gehören keinem Nutzer oder keiner Benutzergruppe an. Dies deutet auf einen erfolgreichen Einbruch hin und sollte kontinuierlich untersucht werden:
Code:
root@linux # find / -nouser -o -nogroup >/tmp/verwaiste_files

und normalerweise sollte Yast die zusätzlich benötigten rpms wieder entfernen:


Zitat:
Code:
Das Installieren und Deinstallieren der Pakete übernimmt ebenfalls Yast. Hier können Sie die vorhandenen Pakete nach Stichwörtern durchsuchen und so die gewünschte Software zum Nachinstallieren finden. Weitere notwendige Pakete wählt das Installationprogramm automatisch mit aus. Umgekehrt entfernt Yast nicht mehr benötigte Pakete auch wieder.
Natürlich holt Yast auch Pakete aus dem Internet. Sie müssen nur die richtige Adresse eingeben.

interessantes Thema!
 
OP
H

HESCHY

Member
latinoxxx schrieb:
fangen wir mal ganz unten an:

bei den Dateien!


4.10 Verwaiste und rechtelose Dateien

Dateien, die von jedermann beschrieben werden können, stellen ein sehr großes Sicherheitsrisiko dar. Deshalb sollten so wenig wie möglich solcher Dateien existieren (Gruppenrechte einsetzen!). Mit find lassen sich solche Dateien aufspüren und nach sorgfältiger Kontrolle kontrolliert löschen:
Code:
root@linux # find / -perm -o+w -a ! -type l -ls >/tmp/rechtlose-files
Verwaiste Dateien gehören keinem Nutzer oder keiner Benutzergruppe an. Dies deutet auf einen erfolgreichen Einbruch hin und sollte kontinuierlich untersucht werden:
Code:
root@linux # find / -nouser -o -nogroup >/tmp/verwaiste_files

und normalerweise sollte Yast die zusätzlich benötigten rpms wieder entfernen:


Zitat:
Code:
Das Installieren und Deinstallieren der Pakete übernimmt ebenfalls Yast. Hier können Sie die vorhandenen Pakete nach Stichwörtern durchsuchen und so die gewünschte Software zum Nachinstallieren finden. Weitere notwendige Pakete wählt das Installationprogramm automatisch mit aus. Umgekehrt entfernt Yast nicht mehr benötigte Pakete auch wieder.
Natürlich holt Yast auch Pakete aus dem Internet. Sie müssen nur die richtige Adresse eingeben.

interessantes Thema!


Danke für die Antworten, werde mich da mal durchkämpfen.
:roll:
 
A

Anonymous

Gast
hey heschy

habs schon vollzogen !

Die Datei "rechtelos" ist bei mir 159k groß wobei viele aus dem /proc verzeichnis stammen.
das sind prozesse die nicht löschbar sind
muss man wirklich nachschauen mit bedacht was zu löschen ist.

verwaiste hat ich keine = > kein Einbruch :lol:

ich werde mir mal jetzt ein rpm installieren das weitere erfordert und das später wieder deinstallieren. Dann schau ich mal was passiert normalerweise müsste er es wieder mit runternehmen solange es nicht abhängigkeitsmäßig von einem anderen gebraucht wird.
Melde mich dann wieder.
 

oc2pus

Ultimate Guru
apt -D <paket>
entfernt <paket> UND alle abhängigen die nicht mehr benötigt werden

hier ein python-script welches die orphaned Pakete aufspürt:
Code:
#!/usr/bin/python

import os

def get_all_rpms():
    result = os.popen("rpm -qa --qf '%{name}\n'| sort").readlines()
    return map(lambda x: x.strip(), result)

def get_depends(package):
    result = os.popen(r"""apt-cache whatdepends %s | grep -v '^  %s-[^-]\+-[^-]\+$' |\
        grep '^  [^ ]' | sed -e 's/  \(.*\)-[^-]\+-[^-]\+$/\1/' | sort -u""" % (package, package)).readlines()
    return map(lambda x: x.strip(), result)

def have_same_entry(list1, list2):
    i1, i2 = 0, 0
    l1 , l2 = len(list1), len(list2)
    while (i1<l1) and (i2<l2):
        if (list1[i1]<list2[i2]): i1 += 1
        elif (list1[i1]>list2[i2]): i2 += 1
        else: return 1
    return 0

def get_lists():
    all_rpms = get_all_rpms()
    remove = []
    keep = []
    print "Calculating Depends:"
    for pkg in all_rpms:
        depends = get_depends(pkg)
        if have_same_entry(all_rpms, depends):
            remove.append(pkg)
            print "%s removed" % pkg
        else:
            keep.append(pkg)
            print "%s kept" % pkg
    return keep, remove

keep, remove = get_lists()

def write(filename, list):
    f = file(filename, "w")
    for i in list:
        f.write(i)
        f.write("\n")
    f.close()

print "Needed packeges"
print keep
write("rpms.keep", keep)
print "other packages"
print remove
write("rpms.remove", remove)
benötigt allerdings ebenfalls apt

und hier noch ein bash-script:
Code:
#!/bin/bash
## rpm-orphan-find, a script that finds
## orphaned libs on an RPM-based system
## and rolls them into a virtual .rpm
## written by Paul Heinlein and Peter Samuelson
## Copyright 2003
## You may use, distribute or modify this
## program under the terms of the GPL.
OS=$(uname -s)
LIBS="/lib /usr/lib $(cat /etc/ld.so.conf)"
NAME=$(echo ${OS}-base-libs | tr '[A-Z]' '[a-z]')
VER=1.0; REL=1
TMPSPEC=$(mktemp /tmp/${NAME}.spec.XXXXXX)

exec 9>$TMPSPEC

cat <<__eof__ >&9
Summary: $OS Base Virtual Package
Name: $NAME
Version: $VER
Release: $REL
Group: System Environment/Base
License: None
__eof__

found=0; orphan=0;
echo "Scanning system libraries $NAME version $VER-$REL..."
find $LIBS -type f \( -name '*.so.*' -o -name '*.so' \) |
while read f
do
  ((found++))
  if ! rpm -qf $f >/dev/null 2>&1
  then
    ((orphan++))
    echo "Provides: $(basename $f)" >&9
  fi
  echo -ne "Orphans found: $orphan/$found...\r"
done
echo ''; echo ''

cat <<__eof__ >&9

%description
This is a virtual RPM package.  It contains no
actual files.  It uses the 'Provides' token from RPM 3.x and later to list many of the sharedlibraries that are part of the base operating system and associated subsets for this $OS environment.

%prep
# nothing to do

%build
# nothing to do

%install
# nothing to do

%clean
# nothing to do

%post
# nothing to do

%files

__eof__

exec 9>&-
rpmbuild -ba $TMPSPEC; rm $TMPSPEC

#Note that rpmbuild has replaced rpm. 
#The old RPM commands often still work,
#because they are aliased in /etc/popt.
#Run rpm --version to see what you have.
#If you have an older version of RPM,
#edit the last line of the script:
#rpm -bb $TMPSPEC; rm $TMPSPEC

und hier noch ein Programm zum Thema:
http://kde-apps.org/content/show.php?content=28631
Description:
KleanSweep allows you to reclaim disk space by finding unneeded files. It can search for files basing on several criterias; you can seek for:
* empty files
* empty directories
* backup files
* broken symbolic links
* broken executables
* dead menu entries (.desktop files pointing to non-existing executables)
* obsolete thumbnails (thumbnails of non-existing images)
* duplicated files
* orphaned files (files not found in RPM or DEB database).

Results for each criteria are shown in separate tab; files may appear on many tabs if they match many criterias - in this case they are "linked", so you have to mark (or unmark) file for deletion only once! Before actual deletion takes place, you're given an option to create backup archive.

AFAIK, gibt es das als SuSE-RPM bei suser-guru
 
OP
H

HESCHY

Member
Ich habe die ganze Prozedur mal anhand des DVD Styler mit Smart durchgespielt, und dort werden die Pakete die mit dem DVD Styler installiert werden nicht deinstalliert und bleiben auf dem System, ohne das ein anderes Paket diese benötigt.
 
A

Anonymous

Gast
sauber also mit den ganzen tools is aufgeräumt!

Also kann ich apt benutzen für rpms die ich mit yast eingespielt habe?
 
OP
H

HESCHY

Member
Danke @ oc2pus

das Proggi ist super habe es mir mal gleich gezogen und installiert. Kann mich wage dran erinnern das ich das bei einer Anderen SuSE Version schon mal drauf hatte, aber damals noch komplett in englisch was jetzt der Vergangenheit angehört.

Habe gleich mal nen Scan gemacht und das Programm hat ordentlich was gefunden. :D
 
A

Anonymous

Gast
ok habs über smart gezogen und bin begeistert
ist auch recht schnell
 
Oben