Devel包通常包含头文件或编译应用程序所需的其他东西。
为了保持系统的干净和易于pipe理,我正在寻找一个命令来列出由yum
安装的所有 -devel
packages (也是rpm,没有后缀)。
我通常使用yum list installed
并手动收集devel的。
作为一般规则,您是否build议在编译后删除它们?
我想你的关于开发包移除的问题有两个部分的答案。 第一部分是根据其他人的build议删除-devel
包。 这将删除httpd-devel
等应用程序的开发接口。
第二部分是基础开发的core development
包,大部分需要从源代码安装程序。 RHEL将这些软件包分在Development tools
。 你可以删除这些包使用 –
yum groupremove "Development tools"
就个人而言,我不会像SvenW提到的那样在生产服务器上安装任何开发包。 因此,我将从一个干净的基础安装开始,不需要任何开发包,然后根据您的要求明确安装绝对需要的。
yum remove $(rpm -qa "*-devel")
另外,不要在你的生产(甚至是分期)系统上进行开发。 如果你真的必须重build一个RPM,使用在chroot中build立它的mock
,并且可以在它自己之后进行清理。
基本安全tennet:不要使用黑名单(也就是寻找禁用的东西),因为太容易遗漏某些东西(直到太迟了才能发现); 使用白名单(即检查需要什么),如果你忘记了一些你会很快知道的事情。
在这种特殊情况下:列出机器上需要的软件列表,无论是为了pipe理还是为其提供的服务,并安装该软件(以及任何依赖关系)。 如果有几个select(即使用scp(1)或FTP上传新内容),看看你是否只能保留一个,并仔细select一个。 其他一切都是包袱,并有潜在的安全风险。
yum list installed | grep '\-devel\'
或者,因为百胜有一个cookiesselect机制:
yum list installed '*-devel'
这也应该为卸载工作:
yum erase '*-devel'
为了保持系统“干净和可pipe理”,有一个工作机器,你build立自己的包,然后安装在生产机器上。