方法1:使用 make uninstall
(推荐优先尝试)
如果软件的 Makefile
提供了卸载目标:
cd /path/to/source-code # 进入源码目录 sudo make uninstall # 执行卸载
原理:
开发者若在 Makefile
中定义了 uninstall
规则,该命令会反向删除安装的文件。
注意事项:
- 必须使用原始编译时的源码目录(文件列表记录在
Makefile
中)。 - 并非所有软件都支持此功能(可检查源码目录是否有
uninstall
规则)。
方法2:通过 checkinstall
生成包再卸载(适用于无卸载规则的软件)
步骤:
- 安装
checkinstall
(以Debian/Ubuntu为例):sudo apt install checkinstall
- 重新编译并打包:
cd /path/to/source-code ./configure # 配置环境(非必须,视软件而定) make # 编译 sudo checkinstall # 替代 make install
按提示输入包名和版本,生成
.deb
或.rpm
包。 - 卸载:
sudo dpkg -r package-name # Debian/Ubuntu # 或 sudo rpm -e package-name # RHEL/CentOS
优势:
将源码安装转换为系统包管理,卸载更彻底且可追踪。
方法3:手动卸载(高风险,需谨慎)
若上述方法不可用,需手动删除文件:
- 查找安装路径:
- 编译时指定了
--prefix
(如./configure --prefix=/opt/software
):sudo rm -rf /opt/software
- 未指定路径(默认安装到
/usr/local/
):sudo rm -rf /usr/local/bin/软件名 # 可执行文件 sudo rm -rf /usr/local/lib/软件库 # 库文件 sudo rm -rf /usr/local/share/软件名 # 资源文件
- 编译时指定了
- 检查其他位置:
- 配置文件:
/etc/软件名
或~/.config/软件名
- 日志文件:
/var/log/软件名
- 配置文件:
警告:
- 操作前备份重要数据(如
sudo cp -r /usr/local /backup
)。 - 避免误删系统文件!可通过
make -n install
模拟安装过程查看文件路径。
注意事项
- 权限问题:卸载系统目录文件需
sudo
。 - 环境变量:若修改了
PATH
或LD_LIBRARY_PATH
,安装后需更新(如source ~/.bashrc
)。 - 依赖项:手动安装的依赖库需单独卸载。
- 优先选择包管理器:
sudo apt install 软件名 # Debian/Ubuntu sudo yum install 软件名 # RHEL/CentOS
包管理器(apt/yum/dnf)自动处理卸载依赖,更安全高效。
总结建议
- 首选方案:尝试
make uninstall
或checkinstall
。 - 次选方案:手动删除(仅当明确知道安装路径时)。
- 预防措施:未来编译安装前使用
--prefix
指定独立目录(如./configure --prefix=/opt/software
),便于集中管理。
重要提示:卸载系统关键组件可能导致不稳定!操作前务必确认软件影响范围,生产环境建议在测试后执行。
引用说明:
本文方法参考自GNU Make手册、checkinstall官方文档及Linux社区最佳实践,具体命令以软件源码和系统环境为准。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5580.html