Используя aptitude, для поиска установленных пакетов за пределами стабильной ветки вы можете использовать:
aptitude search "?narrow(?installed,?not(?archive(stable)))"
Чтобы увидеть версии, а также имена пакетов (и вместо описаний), вы можете использовать команду с параметром формата ( -F
для краткости) следующим образом.
aptitude search -F "%p %V %v" "?narrow(?installed,?not(?archive(stable)))"
Для большего количества форматов, пожалуйста, посмотрите на страницу руководства (здесь документация с опциями. )
Это работает, например, в Debian, если вы установили пакеты за пределами Squeeze (например, запустив apt-get install -t sid package-name
.
Вы можете посмотреть откуда приходит установленный пакет apt-cache policy
, используя его следующим образом:
apt-cache policy <package-name>
Например, мой пакет python-numpy выдает следующий вывод:
$ LANG=C apt-cache policy python-numpy
python-numpy:
Installed: 1:1.6.2-1
Candidate: 1:1.6.2-1.2
Version table:
1:1.7.0-1 0
1 http://ftp.es.debian.org/debian/ experimental/main amd64 Packages
1:1.6.2-1.2 0
500 http://ftp.es.debian.org/debian/ sid/main amd64 Packages
*** 1:1.6.2-1 0
100 /var/lib/dpkg/status
1:1.4.1-5 0
990 http://ftp.es.debian.org/debian/ squeeze/main amd64 Packages
990 http://ftp.de.debian.org/debian/ squeeze/main amd64 Packages
Это означает, что я на одну версию позади текущей ветки sid / main, поэтому у меня установлена старая версия sid. Я вижу, что у меня нет стабильной, потому что она еще есть 1.4.1-5
, и я в настоящее время на 1.6.2-1
.
На момент отправки этот пакет уже был обновлен:)
?any-version()
, потому что~narrow(pat1, pat2)
это так же, как?any-version(pat1 pat2)
и поддерживает,?any-version(pat1 pat2 pat3)
не выглядя глупо.