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