当前位置: 首页>>技术教程>>正文


如何列出用户安装的应用程序(不是软件包)?

, ,

问题描述

不是软件包,也不是所有应用程序。只是用户自己从任何来源(软件中心,手动添加的PPA等)安装的应用程序。如果上述操作不可行-所有已安装应用程序的列表,或者至少是列出应用程序的GUI,以便我可以对其进行截图。

我读过许多类似的问题,发布答案的人通常甚至都不接近OP问题的价值。请注意,我的问题包括’user installed’。

答:目前在Ubuntu Linux中是不可能的。 (尽管选择tijybba的答案是最接近的答案)

最佳答案

您实际上可以使用Ubuntu软件中心,如以下屏幕截图所示:

您也可以在Synaptic左下方列表选择中看到它。

通过cd /etc/apt/sources.list.d/ && cat *.list,您将获得系统中所有存储库的列表。

您也可以Y PPA manager备份和更新存储库。


Second Method

[由于此方法涉及安装所有软件包,但是如果我们认为新安装的OS将已经拥有这90%的软件包,那么它将忽略当前的软件包并安装新的手动添加的软件包,它们将仅是您手动安装的应用程序。]

此方法来自here

sudo dpkg --get-selections > installed-applications.txt

它将在主文件夹中的txt文件中生成已安装应用程序的列表。

要使用此文件来安装相同的应用程序,您必须要做的(但在此之前,还请添加旧版本中存在的所有第三方存储库)

sudo dpkg --set-selections < installed-applications.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade

也可以通过Gui方式

sudo add-apt-repository ppa:webupd8team/mintbackup && sudo apt-get update
sudo apt-get install mintbackup

我想映像几乎可以说明一切,备份您的选择,然后在“新安装”中将其还原。

次佳答案

apt-mark showmanual将为您提供”manually installed”软件包的列表。其中包括安装程序安装的大多数软件包。但是,如果您在安装后运行此程序,然后稍后再次比较输出,则将获得用户明确要求的软件包列表,其中不包括自动安装的依赖项。

例如:

$ # Save the current list of manually installed packages
$ apt-mark showmanual | sort > original-package-list

# ...time passes...

$ # Compare the old list with the current list
$ # (this will output a list of packages that have been installed by the user since the last command)
$ apt-mark showmanual | sort | comm -13 - original-package-list

请注意,就软件中心而言,应用程序是软件包,并且涉及手动添加的PPA。我认为最好区分打包的软件包和引入的满足依赖性的软件包。

或者仅查看所有已安装软件包的列表,请运行dpkg-query -W -f'${PackageSpec}\n'

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7953.html,未经允许,请勿转载。