我刚刚将几台 PC 升级到 Ubuntu Trusty 14.04。为此,我习惯从头开始安装所有内容以获得干净的系统,只保留 /home(和 /etc 供参考)。
但是这次我使用升级工具进行了升级,我想知道我的电脑与普通系统相比有什么不同。因为我从不同的来源安装了许多不同的软件包,并且可能在这里或那里编辑了一些文件。当然,我知道 apt 应该可以自动处理所有事情,但我是个偏执狂,我真的想确定一下。
基本上,我想要的是:
获取已安装的所有软件包的列表,以及每个软件包的来源存储库(如果可用)。这基本上是
apt-cache policy
针对每个包的,但总结在一个整洁的列表中。对于来自“非官方来源”的软件包,指示是否有可从官方来源获得的版本(我指的是 /etc/apt/sources.list 中列出的 repo)。
有时我安装了第三方的修补包,由于版本号冲突,这个包没有更新。我想要一个列表来告诉我是否有必要回退到官方版本。
文件系统中来自已安装软件包(包括配置文件)但之后已被修改的所有文件的列表。
文件系统上所有不来自已安装软件包的文件列表(不包括 /home,可能还有 /etc)。
基本上,我想知道升级后系统与全新安装后系统有何不同,并根据具体情况决定这些差异是否会导致不稳定。
答案1
我的问题已得到部分解答如何获取过时软件包的列表?。
答案建议使用
apt-show-versions | grep 'No available version' # Show all package not coming from repo
aptitude search '~o' # Similar
我想我们也可以这样做:
apt-show-versions | grep -v uptodate # All packages that are not up-to-date
这将提供非最新的软件包,即可从启用的存储库升级的软件包,或不是来自此类存储库的软件包。
要获取此类软件包的所有可用版本的列表,我们可以执行以下操作:
apt-show-versions -a $(apt-show-versions | grep -v uptodate | sed -r 's/:.*//')
我还发现了一个引用deborphan -a
(的问题如何列出 apt 中没有存储库支持的已安装软件包?)
deborphan -a # List all packages that have no reverse dependencies
总而言之,我对第 1 项和第 2 项有一些答案,但仍在寻找第 3 项和第 4 项:
apt-show-versions
是一个很好的答案- 同上,上面的命令组合之一。这里的关键步骤当然是首先确保在 /etc/apt 中只启用了官方存储库。
- ?
- ?