Gentoo aufräumen und aktuell halten

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Diese Seite wurde zur Löschung vorgeschlagen.
  • Wenn du mit diesem Vorschlag nicht einverstanden bist, beteilige dich bitte an der Löschdiskussion.
  • Wenn du den Artikel verbessern willst, entferne den Löschvorschlag und vermerke dies in der Löschdiskussion. Bei eigenen Artikeln bitte den Löschvorschlag nicht selbst entfernen.
  • Vor dem Entfernen ist sicherzustellen, dass kein anderer Artikel hierhin zeigt. Die Versionsgeschichte ist davor auf gravierenden Veränderungen zu überprüfen.

Inhaltsverzeichnis

[Bearbeiten] Gentoo aufräumen

Ggf. benötigte Tools installieren: app-portage/gentoolkit app-portage/eix app-admin/localepurge

[Bearbeiten] Überflüssige Dateien entfernen

  • Mit localepurge überflüssige locales entfernen.
  • /var/lib/portage/world durchforsten und alle nicht benötigten Zeilen löschen.
  • Nicht benötigte Programme deinstallieren
    • entweder Sanft (also zu Aufräumungszwecken):
      Benötigt ein vorheriges "emerge -uvDN world" , das kann u.U. lange dauern. Wenn man Zeit und Lust dafür hat, dieses ausführen und danach alle überflüssigen Pakete deinstallieren: emerge --depclean
      Ohne ein "emerge -uvDN world" muß mittels "emerge --depclean --pretend" geguckt werden was weg kann und das Löschen von Hand vorgenommen werden. Danach die distfiles, mit Ausname der neuesten Paketversionen, löschen: eclean-dist
    • oder Radikal (zur größtmöglichen Platzgewinnung):
      Geht schnell, ist aber nicht nett.
      Prüfen, ob überflüssige
      - Kernelquellen (/usr/src/linux -- kann einige GB ausmachen. Deinstallieren mit emerge -C oder -P)
      - gcc-Versionen
      - python-Versionen
      - jdk/jre-versionen
      vorhanden sind.
      Ggf. Abhängigkeiten mit equery d '=gruppe/paket-version' prüfen und mit emerge -C löschen.
      Ohne ein "emerge -uvDN" löscht ein "emerge --depclean -p" meist zu viel, daher muß man das von Hand überarbeiten.
      Dann alle Distfiles löschen: rm -r /usr/portage/distfiles/*

[Bearbeiten] Alte Dateien Löschen

  1. Alle Module außer denen des aktuellen Kernels aus /lib/modules löschen.
  2. Temporäre Dateien löschen rm -r /var/tmp/* rm -r /var/cache/* rm -r /tmp/*
  3. In /var/log/ prüfen, ob sich große logs angesammelt haben, ggf. löschen und logrotate anpassen.
  4. Angefallenen Müll entfernen mit dem cruft-script.
    1. findcruft | tee cruft.out
    2. In der cruft.out nur Dateinamen lassen, die wirklich gelöscht werden sollen. Im Zweifel lieber Dateien im System lassen anstatt zu löschen!
    3. Den Müll nach /tmp verschieben: mvcruft cruft.out /tmp/cruft

[Bearbeiten] Portage aufräumen

Überlegen, ob portage-rsync-exludes in Frage kommen. Ggf. anwenden. Wenn man rsync-exludes gemacht hat:

#VORSICHT: Benötigt einen kompletten portage-sync; löscht alle distfiles 
rm -r /usr/portage/* 

und

emerge --sync 

[Bearbeiten] Aktuell halten

[Bearbeiten] Nur Sicherheitsupdates

Es sollten mindestens Sicherheitsupdates regelmäßig durchgeführt werden:

glsa-check -f affected

[Bearbeiten] Komplette Aktualisierung

Will man immer auf dem aktuellen Stand bleiben, hilft ein regelmäßiges:

emerge -uvDN world

Um möglichst komfortabel auf dem aktuellen Stand zu bleiben empfiehlt sich ein update-script.

[Bearbeiten] Sicherheitsupdates und Portagedrops

Für einen Kompromiß zwischen möglichst wenigen Updates und Aktualität kann man folgendes Script benutzen. Es aktualisiert jeweils diejenigen Pakete, die eine Sicherheitswarnung bekommen haben und diejenigen, deren Version nicht mehr in der Portage-Datenbank vorhanden ist, auf die aktuelle Version.

#!/bin/bash
echo "Erzeuge GLSA-Liste..."
GLSA=$(glsa-check -p affected |grep -P '\s+'|awk '{print $1}'|grep --only-matching -P '[\w-]+/[\w-]+'|sed 's/-[0-9]$//')

echo "Erzeuge Liste obsoleter Pakete..."

OBSOLETE=$(TEST_FOR_NONEXISTENT=true TEST_FOR_REDUNDANCY=false eix -Tc|grep -P '^\[[A-CE-Z].*'|grep --only-matching -P '^\[.*\].*/[\w-]+\s'|awk '{print $2}')

if [ ! "$GLSA" ]&&[ ! "$OBSOLETE" ];then
        echo "Nichts abzudaten."
        exit
fi

echo "Paketliste:"
echo -n $GLSA;echo -n " ";echo -n $OBSOLETE;echo
emerge $GLSA $OBSOLETE -vp
echo
echo "Updaten [ENTER] ? "
read KEY;if [ "$KEY" == "n" ];then exit;fi
#printf '\a';sleep 1;printf '\a';sleep 1;printf '\a';sleep 1;printf '\a';sleep 1

#emerge --oneshot $GLSA $OBSOLETE
#PAKETE="$GLSA
#$OBSOLETE"
PAKETE="$OBSOLETE"

for paket in $GLSA;do
        emerge --oneshot $paket
done

for paket in $PAKETE;do
        if [ "`TEST_FOR_NONEXISTENT=true TEST_FOR_REDUNDANCY=false eix -Tc $paket|grep -P '^\[U\]'`" ];then
                emerge --oneshot $paket
        fi
done

echo "Erzeuge revdep-rebuild-Liste..."
REVDEPREBUILD=$(revdep-rebuild -p|grep -P 'emerge.*$'|grep --only-matching -P '/[\w-]+'|sed 's/^\///'|sed 's/-r[0-9]*$//'|sed 's/-[0-9]*$//')

if [ ! "$REVDEPREBUILD" ];then
        echo "Kein revdep-rebuild nötig"
        exit
fi

echo "Paketliste:"
echo -n $REVDEPREBUILD
echo
emerge $REVDEPREBUILD -vp
printf '\a';sleep 1;printf '\a';sleep 1;printf '\a';sleep 1;printf '\a';sleep 1
printf '\a';sleep 1;printf '\a';sleep 1;printf '\a';sleep 1;printf '\a';sleep 1

emerge --oneshot $REVDEPREBUILD
#for paket in $REVDEPREBUILD;do
#       emerge --oneshot $paket
#done
 
'Persönliche Werkzeuge