您如何跟踪Fedora(Linux)上安装了哪些软件包?


11

(此问题与6338非常相似。由于Fedora和Ubuntu / Debian的差异足以保证得出不同的答案,因此建议将其与之分开。)

当我使用任何Fedora设置时,我会在基准安装之上逐步安装许多软件包。如果我重新安装,或者需要安装新计算机,通常我想重新安装那些特定的程序包,并且我想尽快恢复到最小的麻烦。据我所知,所有的软件包管理器(yumpirut)都可以告诉我安装了哪些软件包,并且它们都有日志(尽管每个工具的日志不同,这很麻烦)。但没有人能告诉我这包我已经已安装,而不是依赖项或系统更新。即使是日志也很棘手,因为我不确定我应该从中提取什么,或者如何集成它们(对于各种合适的家庭工具而言)。这意味着每次我重新安装甚至只是备份时,都不确定如何重新创建该列表。

我不一定期望有任何工具可以为我做到这一点,但是如果没有,我正在寻找解决方法。即使是grep的模式,良好的经验法则或明确记录的确切内容,也会很有用。这里可能没有“最佳答案”,但是好的答案会很有帮助。

Answers:


3

yum list installedyum.log显示已安装的内容,但是我认为系统上的任何内容都无法区分您选择安装的软件包和作为依赖项安装的软件包


2

假设您仍然有/root/install.log原始安装中的文件,则可以这样创建文件rpm.origrpm.curr

cd /root
rpm -qa --qf '%{NAME}\n' | sort -u > rpm.curr
awk '($1=="Installing"){print $2}' install.log | sort -u > rpm.orig

然后,查看添加的软件包:

comm -13 rpm.orig rpm.curr

并删除了:

comm -23 rpm.orig rpm.curr

请注意,如果您安装的是x86_64,则不会告诉您32位和64位软件包之间的区别。


2

尝试使用 sudo yum history packages-list \*

它将显示显式安装的内容以及作为依赖项安装的内容:

ID | Action(s)      | Package                                              
-------------------------------------------------------------------------------
47 | Dep-Install    | cairomm-1.8.0-2.1.el6.x86_64                         
47 | Dep-Install    | glibmm24-2.22.1-1.el6.x86_64                         
47 | Install        | gnome-system-monitor-2.28.0-11.el6.x86_64

0

这是个简单的。

只需在您喜欢的shell中运行以下命令即可。如果您需要更深入地研究RPM的手册页,将会很痛苦。

rpm -qa


3
列出的所有软件包都是,但是不能区分我添加的软件包和系统上已经存在的软件包。我想跟踪明确安装的软件包。
夸克

所有软件包均由您明确安装。为了获得有意义的帮助,您需要对要执行的操作更加具体。
vonbrand 2013年

0

/root/install.log文件将告诉您初始安装中包括哪些软件包。这是一个快速脚本,它将比较此文件的内容与的输出rpm -qa

rpm -qa | sort > /root/postinstall.list
for P in `sed -n 's/Installing \(.*\)/\1/p' </root/install.log`
do
  sed -ie "/$P/d" /root/postinstall.list
done

文件/root/postinstall.list包含所需的文件。请注意,作为原始安装软件包的升级版本的软件包将出现在文件中。如果这不是您想要的,则在sed语句中将需要一个更复杂的模式。


0

rpm -qa --last

从手册页:

--last Orders the package listing by install time such that the latest packages are at the top.

样本输出:

mdadm-3.2.2-9.el6                             Mon 12 Dec 2011 10:06:17 AM EST
libdrm-2.4.25-2.el6                           Mon 12 Dec 2011 09:54:51 AM EST
tcp_wrappers-libs-7.6-57.el6                  Mon 12 Dec 2011 09:54:50 AM EST

0

假设您始终使用“ yum”来安装您可以做的所有事情:

sudo yum history info \* | grep "^Command Line   : install"

它应该显示安装后在系统上执行的所有“ yum install”命令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.