Приветсвую.

У меня в системе есть малое количество пакетов, установленных из 
testing/unstable/experimental, и хотелось бы иметь возможность в любой момент 
эти пакеты увидеть в aptitude. Почитал его доку про поиск; "нутром чую", что 
можно это как-то сделать, "а доказать не могу": примеров маловато, а по 
описаниям не получилось добиться нужного результата. Пока набросал небольшой 
скрипт (см. вложение), но хотелось бы всё-же в интерфейсе aptitude такого 
добиться. Сразу оговорюсь: ~i!~Astable выдаёт не те пакеты, которые установлены 
не из stable, а те установленные, которых вообще нет в stable.

-- 
С уважением,
Тихон Тарнавский.
#!/bin/bash
eval $(apt-config shell r APT::Default-Release)
mask=~i; filter=t; unset notavail
while [ $# -gt 0 ]; do
  case "$1" in
    -m|--manual)   mask=~i!~M ;;
    -a|--auto)     mask=~M ;;
    -A|--all)      unset filter ;;
    -N|--notavail) notavail=t
  esac
  shift
done
for i in $(aptitude -F %p search "$mask"); do
  aa=$(apt-cache policy $i)
  a=$(echo "$aa"| grep -A 1 '\*\*\*' | tr -d \*)
  v=$(echo $a | awk '{print $1}')
  t=$(echo "$a" | tail -1 | awk '{print $3}')
  [ -z "$filter" -o "${t%/*}" != "$r" -a -n "$t" ] &&
    ! { ! echo "$aa" | grep -q " $r/" && [ -n "$notavail" ]; } && 
    echo $i $v $t
done

Ответить