Yum:列出并删除所有开发包

Yum:列出并删除所有开发包

Devel 包通常包含编译应用程序所需的标题或其他内容。

为了保持系统清洁和易于管理,我正在寻找一个命令来 列出全部-devel-软件包安装方式yum(也是 rpm,不带后缀)。

我通常yum list installed手动使用和收集开发人员。

您是否建议一般在编译后将其删除?

答案1

我认为你关于删除开发包的问题有两个答案。第一部分是删除-devel其他人推荐的包。这将删除诸如 之类的应用程序的开发接口httpd-devel

第二部分是core development用于基本开发的软件包,如果您需要从源代码安装程序,则最需要这些软件包。RHEL 将这些软件包归类在 下Development tools。您可以使用以下方法删除这些软件包 -

        yum groupremove "Development tools"

就我个人而言,我不会在生产服务器上安装任何开发包,正如 SvenW 所说。因此,我会从没有任何开发包的干净基础安装开始,然后根据您的要求明确安装绝对需要的包。

答案2

yum remove $(rpm -qa "*-devel")

另外,不要在生产(甚至是暂存)系统上进行开发。如果您确实必须重建 RPM,请使用mock在 chroot 中构建并可自行清理的 RPM。

答案3

基本安全原则:不要使用黑名单(即寻找要禁止的事物),因为很容易遗漏某些内容(而您直到为时已晚才会发现);使用白名单(即检查需要允许的内容),如果您忘记了某些内容,您很快就会知道。

在此特定情况下:列出机器上所需的软件(无论是用于管理还是用于其提供的服务),然后安装该软件(以及它所拖入的任何依赖项)。如果有多个替代方案(即使用 scp(1) 或 FTP 上传新内容),请查看是否只能保留一个,然后谨慎选择。其他一切都是负担,并存在潜在的安全风险。

答案4

yum list installed | grep '\-devel\'

或者,由于 yum 具有包选择机制:

yum list installed '*-devel'

这也适用于卸载:

yum erase '*-devel'

为了保持系统“干净且易于管理”,请准备一台工作机器,在其上构建您自己的软件包,然后将其安装在生产机器上。

相关内容