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如何高效查看日历?命令行与图形界面技巧

    命令行工具(高效快捷)cal 命令(基础日历)基本使用:终端输入 cal 直接显示当前月日历:$ cal 七月 2024日 一 二 三 四 五 六 1 2 3 4 5 6 7 8 9 10 11 12 1314 15 16 17 18 19 2021 22 23 24 25 26 2728 29 30 31扩展……

    2025年6月16日
    1200
  • Linux如何快速查询DNS地址?

    查看当前配置的DNS服务器(/etc/resolv.conf文件)这是最直接的方式,系统默认从此文件读取DNS配置:cat /etc/resolv.conf输出示例:nameserver 8.8.8.8 # 主DNS服务器nameserver 192.168.1.1 # 备用DNS服务器⚠️ 注意:若使用Net……

    2025年6月23日
    1400
  • Linux如何查看系统用户?

    查看所有系统用户/etc/passwd 文件解析这是存储用户信息的核心文件,需用 root 或 sudo 权限查看:cat /etc/passwd输出示例:root:x:0:0:root:/root:/bin/bash每行包含 7个字段(以冒号分隔):用户名(如 root)密码占位符(x 表示密码在 /etc……

    2025年6月14日
    1400
  • Linux系统如何轻松搞定中文显示?

    检查当前语言环境locale # 查看当前设置若输出不含zh_CN.UTF-8,则需配置中文环境,安装中文语言包Ubuntu/Debiansudo apt updatesudo apt install language-pack-zh-hans # 简体中文包sudo apt install fonts-not……

    2025年7月13日
    1200
  • Linux如何强制退出cat命令?

    当cat从标准输入读取时(用户手动输入内容)场景:直接运行cat命令(不带文件名参数),此时终端等待用户输入文本, $ catHello World! # 用户输入内容Hello World! # cat实时回显退出方法:按一次 Ctrl+D(EOF信号):表示输入结束,cat会立即退出并返回命令行,连续按两次……

    2025年6月25日
    1200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信