redhat查找本地安装的所有软件包

到目前为止,我有一个与yum一起安装的显式包列表。 服务器有一些自己开发的软件,它们不是来自回购站,而是被移动,然后在本地安装。 有没有办法找出这种方式安装了哪些软件包/软件?

你可以使用

rpm -qa 

列出所有已安装的软件包。 这也将列出回购的。 然后,你可以比较安装的回购,消除重复,并find你本地安装的。

 rpm -qi {package} 

将显示有关已安装软件包的信息。

您也可以查看rpm手册页以获取更多选项。

使用rpm命令安装的软件包,而不是通过yum repo列出的“已安装”作为其来源。 一个简单的:

  yum list installed |grep installed 

应该列出这些。

没有打包,但通过复制二进制文件或从源代码进行安装的软件将不会在rpm数据库中列出,只能通过检查文件系统来find。 你唯一的希望是,如果你的同事这样做了, 他们至less遵循了一些惯例,并在/ usr / local,/ opt或其他单一path中安装了定制软件,而不是在/ bin或/ usr / sbin中。

你是什​​么意思“本地安装”? 像“rpm -ivh package.rpm”?

如果是,那么你可以通过这样的东西find非官方回购的所有包:

rpm -qa –qf'%{NAME}%{VENDOR} \ n'| grep -v“红帽”

yum list installed | awk'{if($ 3 ==“installed”)print $ 1}'

会帮助你。 它不仅会显示本地安装的软件包,还会显示自首次安装操作系统以来没有更新的所有软件包…所以如果您有许多未更新的软件包,它并不是非常有用。

据我所知,没有简单的方法来做到这一点。 显然你可以使用:

 rpm -qa | grep package-name 

要find某个包或删除grep,并通过yum列出所有已安装的包。 但是,如果你从源代码安装(这是我假设你正在做的 – 你没有指定),他们将不会被跟踪。 如果它们是从源代码安装的,那么正常的过程就是将源文件下载到/ usr / src,然后从那里运行make和make install。 所以通常情况下,您将拥有/ usr / src文件夹中的所有源文件。 但是,如果任何人已经安装了软件,而没有放置源文件,或者从安装源代码后删除了源代码,那么您就不会在那里find它们。