Es geht ein bisschen darum, mit Zypper-Anfragen herumzuspielen.
1) Finden Sie installierte Pakete, die aus Nicht-OpenSuse-Distributions-Repositorys stammen:
zypper search -s | grep "i |" | grep -vi "| patch" | grep -vi "| opensuse" > list1.txt
2) Suchen Sie nach Paketen, die in OpenSuse-Repositorys verfügbar sind (unabhängig davon, ob sie installiert sind oder nicht):
zypper search -s | grep "v |" | grep -vi "| patch" | grep -i "| opensuse" > list2.txt
3) Identifizieren Sie Pakete aus Liste1, die nicht in Liste2 dargestellt sind:
cat list1.txt | cut -d " " -f3 | cut -d " " -f1 | while read line do if [ "$(cat list2.txt | grep -i $line)" = "" ]; then echo "$line" fi done
Dies sollte den Fall lösen (getestet unter openSUSE 11.3).