Version vom 20.05.2007 12:01 Uhr 23.11.2007 myemerge auf mymerge umbenannt.
mymerge
enstand aus dem Frust sich all diese Pakete Merken zu müssen, die bei
einem World oder System update Installiert werden, oder auch bei einem
einzelnen Paket was wiederum andere hinter sich her zieht. Schnell mal
was Ausprobieren und schon waren zig Pakete Installiert die bei einem
emerge -C $HAUPTPAKET einfach auf der Platte verweilen.
mymerge legt nun ein Log an welches beim Deinstallieren alle benötigten Pakete einliest und wieder entfernt. Dieses Betrifft zur.Zeit allerdings nur mit "N" markierte Pakete.
Beispiel:
mymerge -m azureus These are the packages that would be merged, in order:
Calculating dependencies... done! [ebuild N ] dev-java/eclipse-ecj-3.2.2 USE="-doc" 0 kB [ebuild N ] dev-java/bcprov-1.36-r1 USE="-doc -source" 0 kB [ebuild N ] dev-java/commons-cli-1.0-r5 USE="-doc -source -test" 0 kB [ebuild N ] dev-java/swt-3.2.2 USE="cairo opengl -gnome -seamonkey -xulrunner" 0 kB [ebuild N ] net-p2p/azureus-2.5.0.4-r1 USE="-source" 0 kB
Total: 5 packages (5 new), Size of downloads: 0 kB
Diese 5 Pakete werden also nun für azureus gebraucht. Gefällt mir azureus nicht und lösche es mit emerge -C azureus, bleiben 4 unangetastet auf der Platte installiert.
if test "$UID" = 0; then mymerge="emerge" elif [ "$is_sudors" = "$user" ]; then mymerge="sudo emerge" else echo "Fehler:" echo "Du musst Root oder in /etc/sudors eingestragen sein." exit 2 fi
if [ $# -lt 1 ]; then echo "Fehler: Keine Option angegeben" echo "Benutze: $0 [--help -m -C -l -system -world]." exit 1 fi
if [ ! -d $my_merge_log_dir ]; then echo "lege Verzeichnis .mymerge an. Hier werden die Logs gespeichert." sleep 3 mkdir $my_merge_log_dir fi
case "$1" in --help) echo echo "--help Diese Seite" echo "-i den Inhalt eines Paketes anzeigen" echo "-l die Liste der Installierten Pakete anzeigen lassen" echo "-system updaten" echo "-world updaten" echo "-m einzelne Pakete (und deren Abhängigkeiten) mergen" echo "-C Paket wieder entfernen" ;;
#vorhandene Pakete auflisten -l) ls $my_merge_log_dir ;;
$mymerge -C -a $unmerge rm -f $my_merge_log_dir/$filename else echo $my_merge_log_dir/$filename \<-- existiert nicht -l für Liste fi ;;
-system) if [ -f $my_merge_log_dir/system-$date ]; then echo "Das Systemfile für heute existiert schon!" else $mymerge -uDvp system > "$my_merge_log_dir/system-$date" echo "Merge System" $mymerge -uDva system fi ;;
-world) if [ -f $my_merge_log_dir/world-$date ]; then echo "Das Worldfile für heute existiert schon!" else echo "Merge World" $mymerge -uDpv world > "$my_merge_log_dir/world-$date" $mymerge -uDva world fi ;;
-i) if [ -f $my_merge_log_dir/$2 ]; then less "$my_merge_log_dir/$2" else echo $my_merge_log_dir/$2 \<-- existiert nicht -l für Liste exit 1 fi ;; esac