I wrote: > Here's a variation on the theme that serves me well. Here's a slightly safer version.
#!/bin/sh # # pkg_nuke - delete unneeded packages # # Usage: # pkg_info > wanted # vi wanted # keep only the lines you want # pkg_nuke wanted # # All packages will be deleted, except the # wanted packages and their dependencies. # [ $# -eq 1 ] || exit 1 [ -f "$1" ] || exit 2 field1 () { awk '{print $1}'; } wanted=`mktemp -t` field1 < "$1" | sort > $wanted || exit 3 while true; do a=0 for x in `pkg_info | field1 | sort | comm -23 - $wanted`; do pkg_delete $x && a=1 done [ $a -eq 0 ] && break done rm $wanted