# Script zum Aufräumen in /usr/portage/distfiles

## Jinidog

Hi,

um mit Python nicht völlig aus der Übung zu kommen habe ich heute ein Script geschrieben, dass versucht, alle Sourcecodepackete zu löschen, von denen man bereits neuere Versionen runtergeladen hat.

Gibt es dafür schon hervoragend funktionierende und bekannte Tools, oder besteht Interesse daran, dass ich es etwas anwenderfreundlich gestalte und hier veröffentliche?

----------

## toskala

guckst du da:

https://forums.gentoo.org/viewtopic.php?t=67849

da gibts glaub eins, dass heisst "distcleaner" oder sowas

----------

## sarahb523

Also ich hätte interesse für so etwas. ich würde mir folgendes wünschen:

1. löschen aller alten distfiles

2. löschen aller alten distfiles nur wenn diese nicht installiert sind (bsp: es existieren schon die neuen distfiles, diese sind aber noch nicht installiert (weil evtl. noch nicht alle dateien die für die install nötig sind, heruntergeladen wurden.))

3. löschen aller nicht installierten distfiles (damit man einzelne installierte packete immer noch mal neu kompilieren kann, aber ansonsten plattenplatz spart)

4. ein "nur anzeige" modus (wie emerge -pv <packet>)

5. darstellung evtl. im emerge stil oder eine ncurses gui o.ä., also auf jeden fall was im textmodus (um es per ssh zu nutzen.)

----------

## moe

Meinerseits besteht Interesse.

Alle mir bekannten Skripte diesser Art löschen nur distfiles von nicht installierten Paketen, o.ä. Da ich hier fürs Lan distfiles übers Netz mounte, ist das ein nicht brauchbarer Ansatz für mich..

Ich würd ein Skript sehr begrüssen, was distfiles löscht wenn sie von keinem ebuild mehr benötigt werden, alles andere würde mehr oder weniger zu unnötigem Traffic führen, da von einem Paket bsp. eine ~x86 Version, eine x86-Version und eine geslottetete ältere Version vorhanden, und auch benötigt wird.

Und eigentlich müsste dieser Skript auch Portage Overlays beachten, z.B.  für openoffice-bin-de..

Aber ich bin zur Zeit zu faul zum selberskripten..

Gruss Maurice

P.S. Mangels eines solchen Skripts und meiner Faulheit per Hand auszusortieren, ist das distfiles Verzeichnis aufm Server inzwischen 7,7GB gross   :Shocked: 

Wie machen das eigentlich die offiziellen Mirrors, sicherlich per rsync oder?  Obwohls ja auch ein Ansatz wäre: wenn datei nicht auf off. Mirror vorhanden löschen. Allerdings würde das ja auch alle aus overlay resultierenden, und distfiles mit fetch restriction löschen, und gerade bei diesen bin ich froh dass ich nicht manuell saugen muss, auch wenns teilweise lizenzrechtlich nicht ganz ok ist..

----------

## toskala

lesen: http://www.leak.com.ar/~juam/code/distcleaner/  :Exclamation: 

----------

## Jinidog

Das Script ist eigentlich nur ganz einfach und prüft einfach nur im Verzeichnis, ob eine neuere Version runtergeladen ist.

Wenn ja, werden die alten Packete gelöscht.

Dabei ist es recht konservativ und löscht nur Packete deren Dateinamen sich nach dem Muster Packetname-Version.Endung auflösen lassen.

Wenn's nicht so einfach klappt, lässt es die Sache lieber sein.

In meinem nun ein halbes Jahr alten Ordner hat es dennoch 164 Datein gelöscht (insgesamt 600 MB)

Ich denke diese fünf-Punkte Liste würde ich aber hinbekommen.

EDIT:

Ich glaube, distcleaner löscht nur die Packete von nicht installierten Programmen.

Also ein bisschen was anderes.

----------

## toskala

hmm, naja, sollte es ja auch eigentlich tun, wenn das paket noch nicht installiert wurde (warum liegts dann in distfiles?) dann wärs ja doof zu löschen?

----------

## Jinidog

hmm... also ich für meinen Teil habe durchaus Interesse daran, dass ein nicht-installiertes Packet nicht gelöscht wird.

Es kommt nämlich vor, dass ich die Programme durchaus mal installieren möchte, ansonsten kopiere ich des öfteren mein distfiles-Verzeichnis auf andere Rechner, da sollen dann möglichst viele Packete dabei sein.

Aber wahrscheinlich hast du Recht, distcleaner ist wohl das, man normalerweise braucht.

----------

## sarahb523

ich lade für meinen laptop oft packages herunter 

 z.b.: emerge -f pcmcia-cs 

 die installiere ich natürlich nich auf meinem desktop rechner. Ich binde dann das distfiles von desktop rechner per samba an meinem laptop und dann wird auf dem laptop gemerged. Die distfiles kommen aber nicht auf meinem laptop, da die platte nich so groß ist (4,3GB) 

 Das distclean script hat bei mir übrigends 800mb "alte" Dateien gefunden

----------

## toskala

das doch super  :Smile: ?

----------

## sarahb523

allerdings waren bei den dateien auch welche dabei die ich noch brauche und es fehlten auch einige dateien. Also ohne handarbeit gehts nich. Toll wäre wenn das script meinen desktop UND meinen laptop gleichzeitig untersuchen würde und dann entscheiden was gelöscht werden kann.

----------

## toskala

oh  :Smile: 

----------

## sarahb523

Allerdings muß ich sagen, das meine portage benutzung nicht so unbedingt dem druchschnitt hier entspricht. Da ich nur nen modem habe und mir eben nich so viel herunterladen kann muß ich viele umwege gehen um software zu installlieren. Selbst nen sync wird schon zur qual.

----------

