View previous topic :: View next topic |
Author |
Message |
ChrisM87 l33t
Joined: 07 Aug 2004 Posts: 728 Location: Rheinland-Pfalz (Germany)
|
Posted: Thu Feb 10, 2005 5:00 pm Post subject: Gentoo entmüllen |
|
|
Hi,
nachdem sich nun auch mein ReiserFS der magischen 90%-Grenze nähert, habe ich mich mal an das aufräumen gemacht. Dabei ist mir aber aufgefallen, dass es einem hier bei Gentoo sehr schwer gemacht wird.
Einige Beispiele:
1. /usr/portage/distfiles. Man hat nur die Möglichkeit, entweder radikal alles zu löschen (sehr schlecht) oder ein Script zu benutzen, das allerdings nur nach dem Dateinamen geht oder so alte Versionen erkennt. So wird dann z.B. GTK 1 gelöscht, aber uralte Sourcen, die man längst wieder deinstalliert hat, werden belassen.
2. Sonstiges Dateisystem "cruft", z.B. auch unter /etc/, wobei der Müll dort von der Größe her relativ wenig ausmacht. Hierzu gibt es zwei Scripte, einmal cruft und findcruft. cruft selbst wird anscheinend nicht mehr gepflegt, findcruft ist schon besser, aber auch nur ein eher kleines Script und kein "richtiges" Programm mit Web-Whitelist oder ähnlichen Features, die sehr wichtig wären.
Es gibt noch einige Beispiele mehr, aber gerade bei diesen wäre es doch leicht, ein Tool zu entwickeln, dass diese Aufgaben erfüllt, im Prinzip könnte man auch beides fest in Portage einbauen oder irre ich mich?
Oder habt ihr alle einen riesiges RAID-System und kauft euch ein neues, wenn es voll ist?
ChrisM _________________ born to be root - sorry for my bad English! |
|
Back to top |
|
|
pablo_supertux Advocate
Joined: 25 Jan 2004 Posts: 2953 Location: Somewhere between reality and Middle-Earth and in Freiburg (Germany)
|
Posted: Thu Feb 10, 2005 5:05 pm Post subject: |
|
|
Ich lösche regelmäßig /var/tmp/portage und /usr/portage/distfiles so bleibt mein System "sauber" _________________ A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth! |
|
Back to top |
|
|
ChrisM87 l33t
Joined: 07 Aug 2004 Posts: 728 Location: Rheinland-Pfalz (Germany)
|
Posted: Thu Feb 10, 2005 5:30 pm Post subject: |
|
|
Hi,
/var/tmp/portage kann man natürlich immer löschen, das bringt aber nur was, wenn auch emerge-Vorgänge vorher fehlgeschlagen sind.
Distfiles komplett zu leeren würde ich nicht gerne machen, es würde bei mir zwar 8GB bringen und ich habe ohnehin DSL 2000, aber trotzdem muss ich dann beim Neucompilieren wieder alles neu herunterladen und belaste die Mirrors unnötigerweise ein zweites Mal.
ChrisM _________________ born to be root - sorry for my bad English! |
|
Back to top |
|
|
fuchur Guru
Joined: 12 Aug 2003 Posts: 578
|
Posted: Thu Feb 10, 2005 5:30 pm Post subject: |
|
|
hi
Quote: |
1. /usr/portage/distfiles. Man hat nur die Möglichkeit, entweder radikal alles zu löschen (sehr schlecht) oder ein Script zu benutzen, das allerdings nur nach dem Dateinamen geht oder so alte Versionen erkennt. So wird dann z.B. GTK 1 gelöscht, aber uralte Sourcen, die man längst wieder deinstalliert hat, werden belassen.
|
Hier kann ich dir weiterhelfen. Bei diesem Script must du
zusätzlich ankreutzen welche von den nicht mehr benötigten
distfiles du löschen möchtest. Läuft bei mir ca. ein Jahr
ohne probleme übernehme aber keine garantie
Scriptupdate 25.10.05 23:15
Code: |
#!/bin/sh
# /usr/local/bin/cleanportage: cleans distdir pkgdir
# Makes sure gentoolkit and dialog is installed
#
DIALOG=/usr/bin/dialog
if [ ! -x $DIALOG ] ; then
echo -e "\e[0m"
echo -e "\e[01;31m * First emerge dialog"
echo -e "\e[0m"
exit 0
fi
# Where are the portage dirs ...
#
PORTAGEINFO=/usr/lib/portage/bin/portageq
PORTDIR=$($PORTAGEINFO portdir)
DISTDIR=$($PORTAGEINFO distdir)
PACKAGESDIR=$($PORTAGEINFO pkgdir)
PORTDIROVERLAY=$($PORTAGEINFO portdir_overlay)
# makes sure PORTDIR, PORTDIROVERLAY, DISTDIR, PACKAGESDIR exist
#
#if [ ! -d "$PORTDIR" ] || [ ! -d "$PORTDIROVERLAY" ] || [ ! -d "$DISTDIR" ] || [ ! -d "$PACKAGESDIR" ]; then
if [ ! -d "$PORTDIR" ] || [ ! -d "$DISTDIR" ] || [ ! -d "$PACKAGESDIR" ]; then
echo -e "\e[0m"
echo -e "\e[01;31m * Please verify the following settings in /etc/make.conf:"
echo -e "\e[01;31m * PORTDIR, DISTDIR, PKGDIR, PORTDIR_OVERLAY"
echo -e "\e[0m"
exit 0
fi
# Possible dialog (gauge) bug ?
#
dialog --no-shadow --title "!!!!! ATTENTION !!!!!" --clear \
--ok-label "Next" --msgbox "Don't resize the window/shell
if this script is running !" 8 40
test $? = 255 && exit 0
function MAINDIALOG() {
# clean distfiles folder except:
#
VAR="lost+found .journal quota.user aquota.user quota.group aquota.group"
# tempfiles
#
TMPFILE=/tmp/.sourcetmpfile
TMPFILE_=/tmp/.sourcetmpfile_
rm -f $TMPFILE $TMPFILE_
touch $TMPFILE $TMPFILE_
for T in $VAR; do
echo $T >>$TMPFILE
done
VAR=""
TMPVAR=""
dialog --no-shadow --clear --title "Clean portage folders" --menu\
"Select" 0 0 0 \
"01" "Clean sourcefiles"\
"02" "Clean binary packages"\
2>/tmp/NP.$$
RETVAL=$?
NP=$(cat /tmp/NP.$$)
rm -f /tmp/NP.$$
case $RETVAL in
0) case "$NP" in
"01" ) COMPARESOURCES;;
"02" ) COMPAREBINARYS;;
esac;;
1) rm -f $TMPFILE $TMPFILE_ && clear;;
255)rm -f $TMPFILE $TMPFILE_ && clear;;
*) echo -e "\e[01;31m * Dialog Unexpected return code: $RETVAL"
echo -e "\e[0m"
esac
}
function RESETCONTERS() {
CNTR=0
CNTR_=0
CNTR__=0
}
function CALCUCONTERS() {
CNTR_=$(($CNTR_+1))
CNTR__=$(($CNTR_ * 100 / $CNTR))
}
function COMPARESOURCES() {
RESETCONTERS
# find installed ebuilds and set counter
#
INSTALLEBS=$(find /var/db/pkg/ -iname "*.ebuild" | cut -d/ -f5,6)
for TMPVAR in $INSTALLEBS; do
CNTR=$(($CNTR+1))
done
# compare installed ebuilds with sourcefiles in $DISTDIR
#
for INSTALLEB in $INSTALLEBS
do
echo $CNTR__
CALCUCONTERS
NOVERSIONS=$(echo $INSTALLEB | sed -e 's:-r[0-9]*$::; s:-[^-]*$::; /^$/d')
for PORTFOLDER in $PORTDIR $PORTDIROVERLAY
do
if [ -d $PORTFOLDER/$NOVERSIONS/files ] ; then
cd $PORTFOLDER/$NOVERSIONS/files
for FILE in $INSTALLEB
do
DIGEST="digest-$(basename $FILE)"
if [ -e $DIGEST ] ; then
# SOURCEFILES=$(cat $DIGEST | cut -d " " -f3)
SOURCEFILES=$(cat $DIGEST | awk '{print $3}')
for SOURCEFILE in $SOURCEFILES
do
SOURCES=$DISTDIR/$SOURCEFILE
if [ -e $SOURCES ] ; then
for SOURCE in $SOURCEFILE
do
echo $SOURCE >>$TMPFILE
done
fi
done
fi
done
fi
done
done | $DIALOG --no-shadow --clear --title "Please wait"\
--gauge "Compare installed ebuilds with sourcefiles in $DISTDIR" 8 60 2
CHECKSOURCES
}
function COMPAREBINARYS() {
# remove quote .jornal ... in $TMPFILE we don't need it here
#
$(cat /dev/null >$TMPFILE)
# counters
#
RESETCONTERS
# find installed ebuilds and set counter
#
INSTALLEBS=$(find /var/db/pkg/ -iname "*.ebuild" | cut -d/ -f5,6)
for TMPVAR in $INSTALLEBS
do
CNTR=$(($CNTR+1))
done
TMPVAR=""
# makes sure $PACKAGESDIR/All exist if not back to maindialog
#
if [ ! -d "$PACKAGESDIR/All" ]; then
MAINDIALOG
else
cd $PACKAGESDIR/All
# compare installed ebuilds with binaryfiles in $PACKAGESDIR
#
for INSTALLEB in $INSTALLEBS
do
echo $CNTR__
CALCUCONTERS
BINARYNAME="$(basename $INSTALLEB).tbz2"
if [ -e "$BINARYNAME" ]; then
echo $BINARYNAME >>$TMPFILE
fi
done | $DIALOG --no-shadow --clear --title "Please wait"\
--gauge "Compare installed ebuilds with binarys in $PACKAGESDIR/All" 8 60 2
CHECKBINARYS
fi
}
function CHECKSOURCES() {
SOURCEDIR=$DISTDIR
MSG="sourcefile(s)"
SOURCESTMP
}
function CHECKBINARYS() {
SOURCEDIR=$PACKAGESDIR/All
MSG="binaryfile(s)"
SOURCESTMP
}
function SOURCESTMP() {
RESETCONTERS
# change folder
#
cd $SOURCEDIR
ALLFILES=$(ls)
# set counter
#
for TMPVAR in $ALLFILES
do
CNTR=$(($CNTR+1))
done
# check for outdated files
#
for REMOVE in $ALLFILES
do
echo $CNTR__
CALCUCONTERS
ISNE=$(grep ^$REMOVE $TMPFILE)
if (test -z "$ISNE"); then
echo $REMOVE >>$TMPFILE_
fi
done | $DIALOG --no-shadow --clear --title "Please wait"\
--gauge "Check for outdated $MSG" 7 60 2
VERIFYREMOVE
}
function VERIFYREMOVE() {
RESETCONTERS
# Build checklist
#
VAR=""
TMPVAR=""
for SOURCES in $(cat $TMPFILE_)
do
CNTR=$(($CNTR+1))
VAR="$VAR $SOURCES $CNTR off"
done
dialog --no-shadow --clear --title "Remove $MSG" --checklist\
"This $MSG not needed. Select to remove" 0 0 0 \
$VAR\
2>/tmp/rsf.$$
RETVAL=$?
RSF=$(cat /tmp/rsf.$$ | sed 's/"//g')
rm -f /tmp/rsf.$$
case $RETVAL in
0) if (test ! -z "$RSF"); then
CNTR=0
for RR in $RSF
do
CNTR=$(($CNTR+1))
TMPVAR="$TMPVAR $RR,"
done
"$DIALOG" --no-shadow --clear --title "Really remove" \
--yesno "$TMPVAR" 0 0
case $? in
0) # Makes sure we are in right dir
#
cd $SOURCEDIR
# we need a clear tmpfile if we remove binarys
#
$(cat /dev/null >$TMPFILE)
# remove files
#
for R in $RSF
do
echo $CNTR__
CALCUCONTERS
echo $R >>$TMPFILE
rm -rf $R
done | $DIALOG --no-shadow --clear --title "Please wait"\
--gauge "Remove" 7 60 2
# if we have remove binarys also remove dead links etc ...
#
if [ "$SOURCEDIR" == "$PACKAGESDIR/All" ]; then
RESETCONTERS
for TTT in $(cat $TMPFILE)
do
CNTR=$(($CNTR+1))
done
cd $PACKAGESDIR
FOLDERS=$(ls | grep -)
for R in $FOLDERS
do
echo $CNTR__
cd $PACKAGESDIR/$R
for RL in $(ls)
do
ISNE=$(grep ^$RL $TMPFILE)
if (test ! -z "$ISNE"); then
CALCUCONTERS
rm -rf $RL
fi
done
done | $DIALOG --no-shadow --clear --title "Please wait"\
--gauge "Remove dead links etc in $PACKAGESDIR ..." 7 60 2
fi
;;
1)
;;
esac
fi
;;
1)
;;
3)
;;
255)
;;
*) echo -e "\e[01;31m * Dialog Unexpected return code: $RETVAL"
echo -e "\e[0m"
;;
esac
clear
#MAINDIALOG
exit 1
}
MAINDIALOG
|
mfg
Last edited by fuchur on Tue Oct 25, 2005 9:52 pm; edited 2 times in total |
|
Back to top |
|
|
Lenz Veteran
Joined: 17 Jul 2003 Posts: 1439 Location: Marburg [HE, D, EU]
|
Posted: Thu Feb 10, 2005 5:33 pm Post subject: |
|
|
Das Skript distclean funktioniert doch wunderbar, um /usr/portage/distfiles aufzuräumen. Dann ab und zu /var/tmp/portage leeren, worldfile aufräumen, depclean, das ganze Programm halt.
Was ist da nun das Problem? _________________ .:: Lenz' Signature 1.7b ::.
| Gentoo Linux since v1.4 (08-2003) [Screenshot]
| NetHack Highscore: 5.476.380 Pts., Val-Dwa-Fem-Law, ~ ascended to demigoddess-hood ~ |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Thu Feb 10, 2005 6:04 pm Post subject: |
|
|
Also um die distfiles aufzuräumen exitieren hier im Forum diverse Scripte. Einen Ansatz habe ich aber bisher noch nicht gesehen was ich glaube den Vorstellungen von ChrisM87 am ehesten ensprechen würde.
ein "emerge -pfe world" und das Ergebnis mit den vorhandenen Dateien unter distfiles vergleichen und der Rest kann ins digitale Nirvana... vielleicht hat ja mal einer Lust zu scripten... |
|
Back to top |
|
|
NightDragon Veteran
Joined: 21 Aug 2004 Posts: 1156 Location: Vienna (Austria)
|
Posted: Thu Feb 10, 2005 6:18 pm Post subject: |
|
|
Also ich räume meine distfiles regelmäßig mit einen einfachen schnelle und problemlosen rm /usr/portage/distfiles/ -R auf.
Im seltensten Fall benötige ich ein packet das ich schon mal runtergeladen habe.
Ausnahme sind sinstallationen die groß sind.
Also ich weiß nicht. Aber 8GB distfiles find ich heftig. Und ehrlich gesagt gibts selten abhängikeiten wo er ein sauber installiertes packet nochmals installieren will.
Was ich mache um die Mirrors zu schonen ist, das ich nach einem update die distfiles vom einen zum anderen rechner kopieren und dann dort nochmals aktualisiere. Damit läd er die packete die die rechner gemein aktualisieren nur einmal runter...
Aber ansonsten halte ich es für quatsch unmengen an distfiles aufzubehalten. _________________ You are the problem too all my solutions |
|
Back to top |
|
|
_hephaistos_ Advocate
Joined: 07 Apr 2004 Posts: 2694 Location: salzburg, austria
|
Posted: Thu Feb 10, 2005 6:49 pm Post subject: |
|
|
hi!
2 fragen dazu:
/var/db/pkg/ = "registry" von portage >> NICHT LÖSCHEN
ABER: was ist mit /var/cache/edb/dep
hat immerhin 73MB
darf man das löschen?
thx _________________ -l: signature: command not found |
|
Back to top |
|
|
ChrisM87 l33t
Joined: 07 Aug 2004 Posts: 728 Location: Rheinland-Pfalz (Germany)
|
Posted: Thu Feb 10, 2005 7:04 pm Post subject: |
|
|
Hi,
distclean ist mal super, das ist endlich ein richtiges Tool, danke für den Tipp!
Das oben gepostete Script scheint leider nicht mit der aktuellen Portageversion kompatibel, zumindest bringt es bei mir Fehler, aber distclean ist echt super, echt!
ChrisM _________________ born to be root - sorry for my bad English! |
|
Back to top |
|
|
Mindphaser Tux's lil' helper
Joined: 15 Dec 2004 Posts: 113 Location: Germany
|
Posted: Thu Feb 10, 2005 10:00 pm Post subject: |
|
|
hephaistos6 wrote: |
ABER: was ist mit /var/cache/edb/dep
hat immerhin 73MB
darf man das löschen? |
Darfst du, wird aber bei jeden sync neu generiert.
Dort lagert Portage die Metadaten (Portage Cache) zu den ganzen verfügbaren Paketen.
Ich benutze MySQL als DB-Backend für Portage (weil schneller), hab also alles was du in dieser Ordnerstrukur hast in einer MySQL Datenbank, und diese Datenbank ist rund 23MB gross.... viel grösser dürfte das ganze bei dir auch nicht sein, also probier mal folgendes:
Den ganzen Kram löschen (zur Sicherheit vorher in ne tar.bz2 oder sowas sichern, wenn du willst), dann mit "emerge --metadata" ihn den ganzen Kram neu aufbauen lassen.
Nur ne Idee, wenn das garnichts bringt, ich hab mit der Sache nichts zu tun .... |
|
Back to top |
|
|
moe Veteran
Joined: 28 Mar 2003 Posts: 1289 Location: Potsdam / Germany
|
Posted: Thu Feb 10, 2005 10:26 pm Post subject: |
|
|
NightDragon wrote: |
Im seltensten Fall benötige ich ein packet das ich schon mal runtergeladen habe.
Ausnahme sind sinstallationen die groß sind.
|
Diese Logik versteh ich nicht.
NightDragon wrote: |
Und ehrlich gesagt gibts selten abhängikeiten wo er ein sauber installiertes packet nochmals installieren will.
|
Das nicht, aber bei jedem Revisionsupdate also von foobar-r1 auf foobar-r2 benötigt er dieselbe Datei aus distfiles nochmal..
Meins ist übrigens 7GB gross, wird aber auch von 3+ Rechnern per NFS genutzt.
Gruss Maurice |
|
Back to top |
|
|
bröggle Guru
Joined: 11 Oct 2004 Posts: 356
|
Posted: Fri Feb 11, 2005 12:43 am Post subject: |
|
|
schau dir mal stale an... hab ich gerade im how to fly with gentoo tread gelesen... Quote: | 4- Stale
Interesting script that will help us to keep /usr/portage/distfiles with an optimal size. The script will search in that dir, and delete (when invoked with the --nopretend option) the old files, not the actual ones.
For example, if we have libtool-1.3.5.tar.gz and libtool-1.5.2.tar.gz, it would delete libtool-1.3.5.tar.gz
It gets messed with files like font-arial-iso-8859-1 and font-arial-iso-8859-2, in which the numeration doesn't not correspond to the versioning of the package (the same with gtk and glib in their versions 1.x and 2.x)
More info HERE. |
https://forums.gentoo.org/viewtopic.php?t=231170 _________________ where is the n00b section? |
|
Back to top |
|
|
c07 Veteran
Joined: 25 Oct 2002 Posts: 1091
|
Posted: Fri Feb 11, 2005 2:06 am Post subject: Re: Gentoo entmüllen |
|
|
ChrisM87 wrote: | 1. /usr/portage/distfiles. Man hat nur die Möglichkeit, entweder radikal alles zu löschen (sehr schlecht) oder ein Script zu benutzen, das allerdings nur nach dem Dateinamen geht oder so alte Versionen erkennt. |
Ich hab ein sehr simples Skript, das in $SRC_URI von allen installierten Paketen sucht. Berücksichtigt allerdings keine USE-Flags und ist ziemlich langsam:
Code: | #! /bin/bash
. /etc/make.globals
. /etc/make.conf
prg="/^SRC_URI=/ {
s/^SRC_URI=//
s/^\\\$?'(.*)'\$/\\1/
s/( |\\\\n|\\\\t)+/ /g
s/(^| )([^ ]+\\?|\\()/ /g
s/\\)( |\$)/ /g
s/[^ ]+\\/([^/ ]+( |\$))/\\1/gp
q}"
cd /var/db/pkg
need=
for pck in */*; do
for file in `bzcat "$pck/environment.bz2" | sed -nr "$prg"`; do
found=
for item in $need; do
if [[ $item == $file ]]; then found=1; break; fi
done
if [[ -z $found ]]; then need="$need $file"; fi
done
done
cd "$DISTDIR"
have=
for file in *; do
if [[ ! -f $file ]]; then continue; fi
found=; list=
for item in $need; do
if [[ $item == $file ]]; then found=1; else list="$list $item"; fi
done
need=$list
if [[ -z $found ]]; then have="$have $file"; fi
done
echo "### needed (maybe):"
for item in $need; do echo "$item"; done
echo "### not needed:"
for item in $have; do echo "$item"; done |
Gibt zwei Listen aus: Die Erste sind Dateien, die bei einem Re-Emerge fehlen könnten; die Zweite sind Dateien, die vorhanden sind, aber von keinem Paket mehr benötigt werden. Das Skript so anzupassen, dass Letztere automatisch gelöscht werden, ist ziemlich trivial (ich behalt manche davon trotzdem noch einige Zeit, falls ich downgraden muss, oder die Kernel, die man später als linux-headers recyclen kann).
hephaistos6 wrote: | was ist mit /var/cache/edb/dep |
Nach FHS muss man /var/cache immer problemlos löschen können, und seit 2.0.51 hat Portage zumindest eine rudimentäre FHS-Konformität. Bug 50200 ist allerdings nicht wirklich gefixt. Z.B. hat der Log-Counter nichts in /var/cache verloren. Aber /var/cache/edb/dep sollte man problemlos löschen können. |
|
Back to top |
|
|
timbo2k n00b
Joined: 05 May 2004 Posts: 70
|
Posted: Fri Feb 11, 2005 11:02 am Post subject: Grundsatzfrage |
|
|
Hi,
zu dem Thema habe ich mal eine Grundsatzfrage. Ist es überhaupt möglich ein System komplett sauber zu halten?
Ich meine auf der einen Seite kann ich den ganzen Portage Kram (distfiles, etc.) von Hand und per Script prima sauber halten. Ich frage mich aber immer, ob auch wirklich alle zu einem Paket gehörigen Dateien beim löschen auch wirklich entfernt werden. Ich bin da immer sehr skeptisch und glaube immer, dass ich nach vielen vielen Update Vorgängen extrem viele Dateileichen auf meinem System habe. Wo merkt sich Protage beim installieren welche Dateien wo liegen? Ansonsten werden beim löschen die Configs auch behalten obwohl man hier auch angeben kann, dass diese mit gelöscht werden sollen. Mir war aber so, dass man gerade das nicht global einstellen konnte oder? Sonst habe ich aber bei Gentoo ein sehr gutes Gefühl weil ich es extrem transparent finde im Vergleich.
Gruß, Tim |
|
Back to top |
|
|
NightDragon Veteran
Joined: 21 Aug 2004 Posts: 1156 Location: Vienna (Austria)
|
Posted: Fri Feb 11, 2005 12:22 pm Post subject: |
|
|
Hm... Wäre ja cool wenn wir die ganzen Ideen und Punkte mal zusammenfassen oder so. _________________ You are the problem too all my solutions |
|
Back to top |
|
|
c07 Veteran
Joined: 25 Oct 2002 Posts: 1091
|
Posted: Fri Feb 11, 2005 12:30 pm Post subject: Re: Grundsatzfrage |
|
|
timbo2k wrote: | Wo merkt sich Protage beim installieren welche Dateien wo liegen? |
In /var/db/pkg/*/*/CONTENTS mit Timestamp und MD5-Summe. Später veränderte Dateien (z.B. durch fix_libtool_files.sh) werden nie mehr deinstalliert. |
|
Back to top |
|
|
NightDragon Veteran
Joined: 21 Aug 2004 Posts: 1156 Location: Vienna (Austria)
|
Posted: Fri Feb 11, 2005 12:36 pm Post subject: |
|
|
Und wie wird man dann die Dateien los die das fixlibtools behandelt hat?
Ich denke nämlich, das ist ne ganze Reihe von Files. _________________ You are the problem too all my solutions |
|
Back to top |
|
|
Mindphaser Tux's lil' helper
Joined: 15 Dec 2004 Posts: 113 Location: Germany
|
Posted: Fri Feb 11, 2005 4:07 pm Post subject: |
|
|
Ich benutze für sowas das Script findcruft. Beim durchsehen der Liste tauchen leider sehr viele Dateien auf, die schon ihren Sinn und Zweck haben... von daher ist Handarbeit angesagt, Files die z.B. in /usr/bin oder /usr/lib als Müll identifiziert werden, kann man eigentlich immer löschen, ist eigentlich überall so, nur bei /var/* und /etc/* wär ich vorsichtig...
Ist vielleicht etwas Zeitaufwendig, dafür ist das System aber wieder sauberer...reicht auch wenn man das nur alle paar Monate macht. |
|
Back to top |
|
|
schachti Advocate
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Sat Feb 12, 2005 8:05 am Post subject: |
|
|
Lenz wrote: |
Das Skript distclean funktioniert doch wunderbar, um /usr/portage/distfiles aufzuräumen.
|
Wo gibbet das denn?
Code: |
kiste root # emerge -S distclean
Searching...
[ Results for search key : distclean ]
[ Applications found : 0 ]
|
|
|
Back to top |
|
|
ChrisM87 l33t
Joined: 07 Aug 2004 Posts: 728 Location: Rheinland-Pfalz (Germany)
|
Posted: Sat Feb 12, 2005 11:11 am Post subject: |
|
|
Hi,
hier im Forum....
Wie schon gesagt, wäre es aber mal eine Überlegung werd, ein größeres Cruft-Finding-Tool zu programmieren, das eine Onlinedatenbank verwendet. So gäbe es kaum noch Falschmeldung, wenn zumindest einige User den Datenbestand aktuell halten.
ChrisM _________________ born to be root - sorry for my bad English! |
|
Back to top |
|
|
MaGPiE n00b
Joined: 31 Oct 2004 Posts: 5
|
Posted: Sat Feb 12, 2005 11:54 am Post subject: |
|
|
schachti wrote: | Lenz wrote: |
Das Skript distclean funktioniert doch wunderbar, um /usr/portage/distfiles aufzuräumen.
|
Wo gibbet das denn?
Code: |
kiste root # emerge -S distclean
Searching...
[ Results for search key : distclean ]
[ Applications found : 0 ]
|
|
Gibt es hier: http://www.stacken.kth.se/~foo/gentoo/files/.
Und hier ist der Forum Beitrag zu finden.
https://forums.gentoo.org/viewtopic.php?t=3011 |
|
Back to top |
|
|
flammenflitzer Advocate
Joined: 25 Nov 2003 Posts: 3541 Location: Berlin
|
Posted: Tue Oct 25, 2005 8:21 pm Post subject: |
|
|
fuchur wrote: | hi
Quote: |
1. /usr/portage/distfiles. Man hat nur die Möglichkeit, entweder radikal alles zu löschen (sehr schlecht) oder ein Script zu benutzen, das allerdings nur nach dem Dateinamen geht oder so alte Versionen erkennt. So wird dann z.B. GTK 1 gelöscht, aber uralte Sourcen, die man längst wieder deinstalliert hat, werden belassen.
|
Hier kann ich dir weiterhelfen. Bei diesem Script must du
zusätzlich ankreutzen welche von den nicht mehr benötigten
distfiles du löschen möchtest. Läuft bei mir ca. ein Jahr
ohne probleme übernehme aber keine garantie
Code: |
#!/bin/sh
# /usr/local/bin/cleanportage: cleans distdir pkgdir
# Makes sure gentoolkit and dialog is installed
#
QPKG=/usr/bin/qpkg
DIALOG=/usr/bin/dialog
......
echo -e "\e[0m"
;;
esac
#MAINDIALOG
exit 1
}
MAINDIALOG
|
mfg |
Ich habe dieses Script unter clear gespeichert.
Code: |
./clear
./clear: line 27: /usr/portage/distfiles: is a directory
* Please verify the following settings in
/etc/make.conf:
* PORTDIR, DISTDIR, PKGDIR, PORTDIR_OVERLAY
|
Code: |
PORTDIR=/usr/portage
DISTDIR=/usr/portage/distfiles
PKGDIR=/usr/portage/packages
PORTDIR_OVERLAY="/usr/local/overlays/gentoo-de /usr/local/overlays/local /usr/local/overlays/bmg-main"
#PORTDIR_OVERLAY=/usr/local/overlays
|
Wo liegt der Fehler? |
|
Back to top |
|
|
fuchur Guru
Joined: 12 Aug 2003 Posts: 578
|
Posted: Tue Oct 25, 2005 9:26 pm Post subject: |
|
|
@ flammenflitzer
Quote: |
....
....
Wo liegt der Fehler?
|
Ich habe das script geschrieben als portage noch nicht mit mehreren einträgen in "PORTDIR_OVERLAY" umgehen konnte.
Daher bei dir die fehlermeldung denke ich.
Ich habe das script oben geändert solte nun funktionieren.
mfg |
|
Back to top |
|
|
mrsteven Veteran
Joined: 04 Jul 2003 Posts: 1939
|
Posted: Wed Oct 26, 2005 12:43 pm Post subject: |
|
|
Ich habe einen Cronjob in /etc/cron.daily, der tmpwatch verwendet. Alle Distfiles, die seit 6 Monaten nicht mehr verändert wurden, werden entsorgt:
Code: | if [[ -d /usr/portage/distfiles ]]; then
/usr/sbin/tmpwatch --mtime --fuser 4320 /usr/portage/distfiles
fi |
|
|
Back to top |
|
|
Yonathan l33t
Joined: 05 Jan 2005 Posts: 662
|
Posted: Sun Oct 30, 2005 9:39 pm Post subject: |
|
|
hiho...
ich habe dieses skript da oben von fuchur in /usr/local/bin/cleanportage gespeichert. habe die rechte auf:
Code: | -rwxr-xr-x 1 root root 8432 30. Okt 22:25 cleanportage |
aber wie kann ich es ausführen? .cleanportage oder einfach nur cleanportage funktionieren nicht
lg. yona _________________ Athlon XP+ 2400 Thunderbird,
Abit NF7
1536MB DDR (266),
Radeon 9200 (256mb)
gentoo 2.6.19-r5 |
|
Back to top |
|
|
|