Я хотел бы узнать версию пакета Ubuntu для всех приложений, заблокированных в моем Unity (7) Launcher, из командной строки.
Команда должна вернуть список имен пакетов и их версий, фильтруя приложения, установленные вручную (как, например, MakeMKV в моем случае).
Можно запросить Единицу с помощью python API, следующая команда найдет все соответствие файлы на рабочем столе и запросит dpkg
для знания пакета если их:
python3 -c 'from gi.repository import Unity; a = Unity.AppInfoManager.get_instance(); \
[print(a.get_path(app)) for app in Unity.LauncherFavorites.get_default().enumerate_ids()]' | \
xargs dpkg -S 2>&1 | \
grep -v "no path found matching pattern" | \
awk -F: '{print $1}' | \
xargs dpkg-query -W
В моей системе это возвращается:
bzr-explorer 1.3.0-2
firefox 30.0+build1-0ubuntu0.14.04.3
geany 1.23.1+dfsg-1
gnome-terminal 3.6.2-0ubuntu1
nautilus 1:3.10.1-0ubuntu9.1
pidgin 1:2.10.9-0ubuntu3.1
qtcreator-plugin-ubuntu 3.0.1+14.04.20140415-0ubuntu1
synaptic 0.81.1ubuntu1
thunderbird 1:24.6.0+build1-0ubuntu0.14.04.1
unity-webapps-googlecalendar 2.4.16+14.04.20140409-0ubuntu1