我如何列出我安装的所有软件包?

我如何列出我安装的所有软件包?

我正在尝试清理一下我的安装,所以我决定清理一下我的软件包。但是,我遇到了麻烦:我希望列出apt-get我安装的所有软件包。如果我列出每个软件包,我还会看到我的软件包的依赖项,尽管我对这些不感兴趣。例如,我想查看我安装的软件包,lightyears但不想查看同时安装的软件包,例如python-numpy or python-pygame。有办法吗?

答案1

这是一个快速的破解,但这让我非常接近:

manifest='http://releases.ubuntu.com/raring/ubuntu-13.04-beta2-desktop-amd64.manifest'

comm -2 -3 \
  <(apt-mark showmanual | sort) \
  <(curl --silent "$manifest" | grep --perl-regexp --only-matching '^[\w-.+]+' | sort)

你必须从以下位置查找适用于你的 Ubuntu 版本的软件包清单:发布服务器

此方法仍会返回通过语言支持安装提示安装第三方软件复选框,但根据您的需要,它可能足够好。

答案2

我认为没有命令可以让你直接获取该信息,但你可以通过检查 APT 日志获取该信息。APT 将命令历史记录存储在 中/var/log/apt/history.log,其中条目的格式如下:

Start-Date: ** time when command was issued **
Commandline: ** command used **
Install | Upgrade | Remove: ** packages installed/upgraded/removed to satisfy the command **
End-Date: ** time when command have finished **

您输入的命令应按您输入的方式显示(因此将sudo apt-get install numpy显示为Commandline: apt-get install numpy)。在我的系统中,此日志中出现的其他命令只有来自的命令aptdaemon,这些命令应由更新管理器发出。

请注意,此日志会不时轮换,因此您可能没有从头开始发出的所有命令,或者您可能需要提取其中的压缩部分。此外,如果您有多个用户,我认为您将无法知道哪个用户安装了什么。

答案3

我正在尝试这个:

  1. 按照上面ændrük 的说明获取适合你的版本的“清单”文件
  2. apt-mark showmanual 获取 apt-mark 认为手动安装的所有软件包的列表
  3. 消除这些列表之间的重复,保留 apt-mark showmanual 的其余输出

我不知道这是否真的有效,但我觉得很有可能。有什么想法吗?

相关内容