Кажется, нет записи о происхождении установленного пакета.
Если у вас все в порядке с получением местоположения, откуда будет загружен пакет с тем же именем, это доступно через
apt-cache policy. Следующий (довольно уродливый) скрипт помогает мне:
LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
| fgrep ':install ok installed' \
| cut -d: -f1 \
| (while read pkg; do
inst_version=$(apt-cache policy $pkg \
| fgrep Installed: \
| awk '{ print $2 }');
origin=$(apt-cache policy "$pkg" \
| fgrep " *** ${inst_version}" -C1 \
| tail -n 1 \
| cut -c12-);
echo $pkg $origin;
done)
Обратите внимание, что он довольно хрупкий, поскольку делает предположения о выводе apt-cache policy, который может меняться в зависимости от версии ...