Stephan Hakuli <[EMAIL PROTECTED]> wrote:
> in der Vergangenheit ist auf meinem Woody-System die Liste der 
> Backport-Sourcen ziemlich angewachsen. Ich m�chte nun herausfinden, 
> welche Pakete aus welchen Quellen installiert worden sind, in der 
> Hoffnung, dass ich ein paar dieser Quellen f�r �berfl�ssig erkl�ren 
> kann. Gibt es ein tool aus der apt-Familie, das genau diese Anforderung 
> erf�llt? Andernfalls w�rde ich den Inhalt von /var/lib/apt/lists/ mit 
> einem Skript durchforsten und mit einem geeignet formatierten output 
> von "dpkg -l" abgleichen, aber das w�rde vermutlich ein l�ngliches und 
> nicht besonders h�bsches Skript...

Und so ein l�ngliches und nicht besonders h�bsches Skript hab ich jetzt
auch endlich fertig. Verbesserungsvorschl�ge willkommen :-)


HTH
 Thorsten

http://www.tgunkel.de/software/files/where_is_debian_package_from

#!/bin/sh
# get installed packages
dpkg --get-selections |
grep [^A-Za-z0-9]install$ |
awk '{ print $1 }' |
while read package_line
do
 # extract possible sources
 echo -n "$package_line |"
 source_found=0
 apt-cache policy "$package_line" |
 while IFS= read source_line
 do
  # find the marked source
  case $source_found in
  0) echo "$source_line" | grep ^" \*\*\*" >/dev/null && source_found=1
  ;;
  1) echo "$source_line" | grep \ \ *[-\ ][0-9][0-9]*\ >/dev/null || source_found=2
     if [ $source_found -eq 1 ]; then
      source_line="`echo $source_line | sed s/^\ *[0-9]*\ //`"
          echo -n " $source_line |"
         fi
  ;;
  *)
  ;;
  esac
 done
 echo
done |
sort +1 |
while read finish_line
do
 # sort output by sources
 package="`echo $finish_line | sed s/\ .*$//`"
 debsource=`echo $finish_line | sed s/^[^\ ]*\ //`
 if [ "X$debsource" != "X$debsource_old" ]; then
  echo "*** $debsource"
 fi
 debsource_old=$debsource
 echo "$package"
done


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an