我正在尝试清理一下我的安装,所以我决定清理一下我的软件包。但是,我遇到了麻烦:我希望列出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
我正在尝试这个:
- 按照上面ændrük 的说明获取适合你的版本的“清单”文件
apt-mark showmanual
获取 apt-mark 认为手动安装的所有软件包的列表- 消除这些列表之间的重复,保留 apt-mark showmanual 的其余输出
我不知道这是否真的有效,但我觉得很有可能。有什么想法吗?