![如何获取与 Unity 7 启动器应用程序对应的软件包版本?](https://linux22.com/image/1047041/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E4%B8%8E%20Unity%207%20%E5%90%AF%E5%8A%A8%E5%99%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%AF%B9%E5%BA%94%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85%E7%89%88%E6%9C%AC%EF%BC%9F.png)
我想从命令行了解锁定在我的 Unity (7) 启动器中的所有应用程序的 Ubuntu 软件包版本。
该命令应返回软件包名称及其版本的列表,过滤手动安装的应用程序(例如我的情况是 MakeMKV)。
答案1
您可以使用其查询 UnityPython 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