Linux下make安装的软件怎样安全卸载?

方法1:使用 make uninstall(推荐优先尝试)

如果软件的 Makefile 提供了卸载目标:

cd /path/to/source-code  # 进入源码目录
sudo make uninstall      # 执行卸载

原理
开发者若在 Makefile 中定义了 uninstall 规则,该命令会反向删除安装的文件。
注意事项

  • 必须使用原始编译时的源码目录(文件列表记录在 Makefile 中)。
  • 并非所有软件都支持此功能(可检查源码目录是否有 uninstall 规则)。

方法2:通过 checkinstall 生成包再卸载(适用于无卸载规则的软件)

步骤

  1. 安装 checkinstall(以Debian/Ubuntu为例):
    sudo apt install checkinstall
  2. 重新编译并打包
    cd /path/to/source-code
    ./configure          # 配置环境(非必须,视软件而定)
    make                 # 编译
    sudo checkinstall    # 替代 make install

    按提示输入包名和版本,生成 .deb.rpm 包。

  3. 卸载
    sudo dpkg -r package-name  # Debian/Ubuntu
    # 或
    sudo rpm -e package-name   # RHEL/CentOS

    优势
    将源码安装转换为系统包管理,卸载更彻底且可追踪。


方法3:手动卸载(高风险,需谨慎)

若上述方法不可用,需手动删除文件:

  1. 查找安装路径
    • 编译时指定了 --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/软件名  # 资源文件
  2. 检查其他位置
    • 配置文件:/etc/软件名~/.config/软件名
    • 日志文件:/var/log/软件名

警告

  • 操作前备份重要数据(如 sudo cp -r /usr/local /backup)。
  • 避免误删系统文件!可通过 make -n install 模拟安装过程查看文件路径。

注意事项

  1. 权限问题:卸载系统目录文件需 sudo
  2. 环境变量:若修改了 PATHLD_LIBRARY_PATH,安装后需更新(如 source ~/.bashrc)。
  3. 依赖项:手动安装的依赖库需单独卸载。
  4. 优先选择包管理器
    sudo apt install 软件名  # Debian/Ubuntu
    sudo yum install 软件名  # RHEL/CentOS

    包管理器(apt/yum/dnf)自动处理卸载依赖,更安全高效。


总结建议

  • 首选方案:尝试 make uninstallcheckinstall
  • 次选方案:手动删除(仅当明确知道安装路径时)。
  • 预防措施:未来编译安装前使用 --prefix 指定独立目录(如 ./configure --prefix=/opt/software),便于集中管理。

重要提示:卸载系统关键组件可能导致不稳定!操作前务必确认软件影响范围,生产环境建议在测试后执行。


引用说明
本文方法参考自GNU Make手册、checkinstall官方文档及Linux社区最佳实践,具体命令以软件源码和系统环境为准。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5580.html

(0)
酷番叔酷番叔
上一篇 2025年6月25日 04:27
下一篇 2025年6月25日 05:08

相关推荐

  • linux如何查看jdk安装路径

    在Linux系统管理和Java开发中,准确获取JDK安装路径是环境配置、版本切换、问题排查的基础操作,由于JDK可能通过系统包管理器、手动编译安装或版本管理工具(如SDKMAN)部署,路径查找方法需结合实际场景选择,以下介绍6种常用方法,覆盖命令查询、环境变量解析、链接追踪等维度,使用which java定位可……

    2025年8月29日
    1100
  • linux如何新建脚本文件大小

    Linux中,新建脚本文件大小为0字节,可通过`touch script.

    2025年8月18日
    1400
  • linux如何卸载ruby

    Linux中卸载Ruby可以使用命令sudo apt-get remove ruby(Debian/Ubuntu)或`sudo

    2025年8月15日
    1200
  • 为什么90%的人不知道这个技巧?

    在Linux系统中,将数字1转换为1本质是数学运算(除以10),可通过命令行工具高效实现,以下是5种专业方法,结合场景需求选择:使用 bc(任意精度计算器)echo "scale=1; 1/10" | bc“`**优化输出格式**:“`bashecho "scale=1; 1……

    2025年6月15日
    3600
  • 如何制作linux脚本

    Linux脚本需编写命令序列,以`#!

    2025年8月18日
    1500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信