Answers:
实际上,您可以使用Ubuntu Software Center,如以下屏幕截图所示:
您也可以在Synaptic左下方列表选择中看到它。
通过cd /etc/apt/sources.list.d/ && cat *.list
你会得到系统中的所有库的列表。
您也可以是PPA管理员,以备份和更新存储库。
第二种方法
[由于此方法涉及安装所有软件包,但是如果我们认为新安装的OS将已经拥有这90%的软件包,则它将忽略当前的软件包并安装新的手动添加的软件包,这些软件包仅是您手动安装的应用程序。]
这个方法从这里开始。
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
将为您提供“手动安装”软件包的列表。其中包括安装程序安装的大多数软件包。但是,如果您在安装后运行此程序,然后稍后再次比较输出,则会获得用户明确要求的软件包列表,其中不包括自动安装的依赖项。
例如:
$ # 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'
。
只有root可以在Ubuntu下安装软件包,可以执行此操作的用户只有1个,sudoers只是具有同等权限的用户。
但是,您可以在日志中获取很多信息,也可以查看
/var/log/apt/
dpkg日志下的apt日志/var/log/
您可以通过以下命令获取已安装软件包的列表:
dpkg -l | grep ii
实际上,根据您的问题,我看到以下命令可以满足您的需求dpkg -l | grep ii。这列出了每个安装的软件包,对我来说应该如此。现在,它没有说用户A或用户B,但这又不是对sudo的限制,而是对软件中心日志的限制。即使使用sudo,也会传递调用sudo的用户,因此您仍然可以使用任何调用sudo的应用程序日志来运行命令。现在,您当然可以轻松解决此问题,因为sudo的一部分就是能够以您知道密码的任何用户(有权访问sudo)的身份登录,对其进行破解或更改(如果您拥有系统上的这些权限)。
如果您担心用户所安装的内容可能会使您或您的系统处于危险之中,则可能需要查看为什么您授予他们sudo访问权限以及安装软件包的能力,但这只是一个说明。
我感觉您正在自问自系统安装以来已安装了哪些软件包,因此您可以清理设置或将设置镜像到新计算机。此处的答案已经涵盖了备份/还原,因此我们将跳过。
由于没有一种简单直接的方法来找到哪个用户称为软件包安装,因此更好的方法可能是使用上面列出的命令,并由另一个用户使用该命令列出所有已安装的软件包,并使浏览器窗口向Google打开并运行Google进行了搜索,以找出保持系统正常运行所需的软件包,而不是哪些软件包。
跳到这里跳过大多数的绒毛,更直接地找到答案...
您也可以查看您的sudoers日志,以了解谁要求安装什么,让我举一个例子。
May 15 11:26:30 <COMPUTERNAME> sudo: <user who called sudo> : TTY=unknown ; PWD=/home/pariah (pwd file or auth method used to verify user) ; USER=root (User they were running as) ; COMMAND=/usr/bin/thunar (the command they ran)
因此,这告诉我这个用户在这个时间和日期要求sudo [实际上是在这种情况下使用gksu顺便说一句],sudo哪个用户让他们拥有权限,而大用户则是他们运行的命令!
现在,如果您要在sudo日志[/var/log/auth.log]中使用apt-get或类似版本进行grep,则较旧的将在末尾附加.0 .1等。
您可以拼凑,这将在命令行本身上安装所需的用户。如果他们使用软件中心,则不确定相关的终端命令是否会在此处获得验证行,但是您可以使用位于以下位置的软件中心日志:
/var/log/apt/history.log和较旧的日志位于.gz压缩档案中
现在,据我所知,软件中心日志不提供对安装进行身份验证的用户,而是列出了软件中心执行的所有添加,修改或删除的操作。同样,此日志还具有时间和日期戳,也很容易,以便在基本系统安装后找到最旧的日志,然后转到最旧的日志,或者如果您还记得基本安装完成的时间和日期,那么就可以了。
提到的两个日志文件都是纯文本格式,您可以使用任何gedit,mousepad,leafpad,无论Ubuntu风格默认使用哪种文本编辑器来查看和打印它们。