Die Anzahl der verwendete Quellen, aus denen man mit der Zeit verschiedene Pakete installiert, werden immer größer. Problematisch kann das ganze dann werden, wenn es aus kompatibilitätsgründen notwendig ist, alle Pakete aus einer bestimmten Quelle zu entfernen. Geht es um eine PPA Quelle, so können die Pakete der PPAs über das "Ubuntu Software-Center" eingesehen werden. Auf der linken Seite werden die einzelnen PPAs mit den daraus installierten Pakete aufgelistet.

    Schwieriger wird das ganze jedoch, wenn man dies über die shell herausfiltern muss. Für diesen Zweck gibt es jedoch das Programm apt-cache policy. Mittels apt-cache policy, ist ersichtlich, welche Versionen eines Paketes in welchen Quellen zur Verfügung stehen. Der mit  *** markierte Eintrag ist die Version des installierten Paketes.

    apt-cache policy wireshark
    wireshark:
     Installiert: 1.4.2+bzr33973~ppa54~maverick1
     Kandidat:    1.4.2+bzr33973~ppa54~maverick1
     Versionstabelle:
     *** 1.4.2+bzr33973~ppa54~maverick1 0
         500 http://ppa.launchpad.net/samba-team/ppa/ubuntu/ maverick/main amd64 Packages
         100 /var/lib/dpkg/status
     1.2.11-4build0.10.10.1 0
         500 http://de.archive.ubuntu.com/ubuntu/ maverick-updates/universe amd64 Packages
         500 http://security.ubuntu.com/ubuntu/ maverick-security/universe amd64 Packages
     1.2.11-2 0
         500 http://de.archive.ubuntu.com/ubuntu/ maverick/universe amd64 Packages

    Unter http://askubuntu.com/questions/5976/how-can-i-list-all-packages-ive-installed-from-a-particular-ppa habe ich noch ein Script gefunden, dass eine Liste aller Pakete mit den dazugehörigen Quellen auflistet. Das Script selbst, liegt als Kopie auch noch mal auf hier Server.

    LC_ALL=C dpkg-query --showformat='${Package}:${Status}n' -W '*' 
    | fgrep ':install ok installed' 
    | cut -d: -f1 
    | (while read pkg; do
    inst_version=$(apt-cache policy $pkg 
    | fgrep Installed: 
    | cut -d: -f2-);
    origin=$(apt-cache policy "$pkg" 
    | fgrep " *** ${inst_version}" -C1 
    | tail -n 1 
    | cut -c12-);
    echo $pkg $origin;
    done)

    Leave A Reply