Ubuntu 16.04下如何卸载源码编译安装的BRO IDS 2.5.3?make uninstall无效
彻底移除源码编译的Bro IDS 2.5.3(Ubuntu 16.04)
我特别理解你遇到的这个麻烦——源码编译的软件有时候make uninstall失效确实让人头疼,尤其是像Bro这种组件分布比较多的工具。下面给你几个靠谱的解决办法,按优先级依次尝试:
方法一:重新利用源码目录执行卸载(如果源码还保留着)
如果当初编译Bro的源码文件夹还在,这是最稳妥的方式:
- 先进入源码目录:
cd /path/to/your/bro-2.5.3-source - 重新运行配置脚本,一定要和你当初编译时的参数完全一致(比如如果当初指定了
--prefix路径,必须加上相同参数):./configure [你的原始配置参数,比如--prefix=/usr/local/bro] - 然后执行卸载:
如果这一步报错,可能是当初编译的中间文件损坏了,可以先执行make uninstallmake clean,再重新configure、make(不用执行install),之后再尝试uninstall。
方法二:手动清理所有相关文件(如果源码已丢失)
如果源码文件夹已经删掉了,就得手动定位并清除所有Bro相关文件:
- 删除核心安装目录
先找到Bro主程序的位置:
默认情况下主程序路径是which bro/usr/local/bro/bin/bro,对应的核心安装目录就是/usr/local/bro,直接删除整个目录:sudo rm -rf /usr/local/bro - 清理系统软链与全局配置
检查系统二进制目录中的软链(比如/usr/bin/bro可能是指向核心目录的软链):
如果是软链,直接删除:ls -l /usr/bin/bro
接着清理系统级配置和日志目录:sudo rm /usr/bin/bro
还要删除用户目录下的个人配置:sudo rm -rf /etc/bro /var/log/brorm -rf ~/.bro - 移除man文档
Bro的帮助文档通常在/usr/local/share/man/man8目录下,找到并删除:sudo rm /usr/local/share/man/man8/bro*.8 - 验证清理结果
最后执行以下命令确认没有残留:bro --version # 正常应该提示"command not found" find /usr/local -name "*bro*" | grep -v "broccoli" # 排除其他同名软件,检查是否还有残留文件
额外提示
如果当初编译时用了自定义的--prefix参数,记得把上面步骤中的路径替换成你指定的前缀路径。比如如果当初指定--prefix=/opt/bro,那核心目录就是/opt/bro,man页在/opt/bro/share/man等。
内容的提问来源于stack exchange,提问作者alshaboti
相关产品推荐
相关产品推荐

