Alle Pakete einer Quelle löschen

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Scripting Paketsystem ‹ Alle Pakete einer Quelle löschen


Es kommt vor, das man in seiner /etc/apt/sources.list eine inoffizielle Quelle aufnimmt (z.B. für KDE3) und man aus einem Grund dann alle Pakete dieser Quelle wieder entfernen will. Das kann man mit folgendem Script machen:

#
# Author: Martin Lohmeier
# E-Mail: martin@mein-horde.de
#

use strict;

if($#ARGV < 0)
{
    print "Fehler: Keine Packetliste angegeben\n";
    exit 1;
}

open(LIST, $ARGV[0]) ||
    die "Fehler: kann die Datei $ARGV[0] nicht öffnen!\n$!\n";

while(<LIST>)
{
    chomp;
    if($_ =~ /^Package:/)
    {
        $_ =~ s/^Package:\ (.*$)/$1/;
        print "$_\n";
        system("apt-get remove $_");
    }
}

close(LIST);

Als erstes und einzigstes Argument übergibt man dem Script die Datei mit den Paketinformationen (unter /var/lib/apt/lists zu finden).

Man kann sich die Sache auch ein bischen einfacher machen:

# 
# Author: Florian Ragwitz
# E-Mail: florian@gnoppix.org
#

die("Keine Paketlisten angegeben") if(!@ARGV);

while(<>) {
   if(/^Package: (.*)$/) {
      print $1."\n";
      system("apt-get remove $1");
   }
}

Hier kann man auch mehrere Listen uebergeben. Achtung: nicht /var/lib/dpkg/status als Liste übergeben; damit würden sämtliche Pakete deinstalliert!

Autor: MartinLohmeier


Scripting / Scripting Paketsystem / Alle Pakete einer Quelle löschen