Sie können app-portage/genlop
dies verwenden.
genlop -l --date some_date
listet alle Pakete auf, die an oder nach diesem Datum zusammengeführt wurden. (Sie können auch ein Enddatum angeben.)
emerge --unmerge
Versuchen Sie Folgendes, um eine Liste der Pakete zu erhalten, für die Folgendes geeignet ist:
genlop -ln --date 2011/10/02 | perl -ne '/>>> (.*)/ and print " =$1";'
Überprüfen Sie diese Liste noch einmal, bevor Sie sie tatsächlich entfernen. Das versehentliche Entfernen von Systempaketen macht keinen Spaß.
Eine andere Möglichkeit, eine Liste von Dingen zu erhalten, die nach einem bestimmten Datum zusammengeführt wurden, besteht darin, die BUILD_TIME
in der Portage-Datenbank gespeicherten Daten zu betrachten.
#!/bin/bash
stime=$(date -d "$1" +%s)
for dir in /var/db/pkg/*/* ; do
if [ -f $dir/BUILD_TIME ] ; then
btime=$(<$dir/BUILD_TIME)
if [ $btime -ge $stime ] ; then
package=$(basename $dir)
category=$(basename $(dirname $dir))
echo $category/$package
fi
fi
done
Rufen Sie dies mit einem Datum (dh ./script "2001/09/30 21:32"
) auf und Sie erhalten eine Liste der Pakete, die seit diesem Datum zusammengeführt wurden.
Portage speichert nicht, ob eine Zusammenführung eine Neuinstallation oder ein Update in seiner Datenbank war. Sie können diese Informationen aus der emerge.log
Datei rekonstruieren, vorausgesetzt, Sie haben den gesamten Systemverlauf dort.
Eine einfachere Möglichkeit, all dies zu handhaben, wäre die Verwendung von Paketsätzen. Erstellen Sie jedes Mal ein Set, wenn Sie ein neues Rezept ausprobieren, und verwenden Sie dieses, um Ihre Aufräumarbeiten durchzuführen. (Depclean ist noch notwendig.)
# echo dev-perl/IO-AIO > /etc/portage/sets/my_set
# emerge -a @my_set
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild N ] dev-perl/IO-AIO-2.33
Would you like to merge these packages? [Yes/No] y
>>> Recording @my_set in "world" favorites file...
...
>>> Installing (1 of 1) dev-perl/IO-AIO-2.33
>>> Auto-cleaning packages...
>>> No outdated packages were found on your system.
* GNU info directory index is up-to-date.
# emerge -a --unmerge @my_set
* This action can remove important packages! In order to be safer, use
* `emerge -pv --depclean <atom>` to check for reverse dependencies before
* removing packages.
>>> These are the packages that would be unmerged:
dev-perl/IO-AIO
selected: 2.33
protected: none
omitted: none
All selected packages: dev-perl/IO-AIO-2.33
>>> 'Selected' packages are slated for removal.
>>> 'Protected' and 'omitted' packages will not be removed.
Would you like to unmerge these packages? [Yes/No]
genlop
das Parsen von Portage-Protokolldateien erforderlich und spiegelt nicht den aktuellen Systemstatus wider, sodass die Ausgabe bereits entfernte Pakete enthält und einige Pakete mehrfach enthalten sind, da sie mehrfach installiert wurden, und es sind auch einige Pakete enthalten, die zufällig gleichzeitig aktualisiert wurden Zeitraum. Also muss ich immer noch alle Pakete einzeln überprüfen, was ich vermeiden möchte.