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如何查看某个目录的大小写

    以使用du -sh 命令来查看某个

    2025年8月17日
    7300
  • 如何在Linux下编写汇编代码?

    准备工作:安装必要工具安装汇编器和链接器使用GNU工具链(已预装于大多数Linux发行版):sudo apt install build-essential # Debian/Ubuntusudo dnf install gcc binutils # Fedora/CentOS验证安装:as –version……

    2025年7月30日
    9300
  • Linux系统下详细如何通过ADB连接手机设备的步骤是什么?

    在Linux系统中通过ADB(Android Debug Bridge)连接手机是进行Android设备调试、文件传输或应用安装的常见操作,整个过程可分为准备工作、USB连接、WiFi连接及常见问题解决几个步骤,需确保设备与系统环境配置正确,准备工作安装ADB工具Linux系统通常需手动安装ADB,不同发行版包……

    2025年9月19日
    8300
  • 如何快速替换Linux默认路由?

    在Linux系统中,网关是连接不同网络的关键节点,负责转发数据包,修改网关可能因网络配置变更、故障切换或优化需求而产生,以下是专业、安全且完整的操作指南,涵盖主流发行版和多种方法:临时修改网关(重启失效)使用 ip route 命令(推荐)sudo ip route replace default via &l……

    2025年7月23日
    10000
  • Linux中sh文件执行的具体步骤和命令是什么?

    .sh文件是Linux系统中常用的Shell脚本文件,它包含一系列可执行的Linux命令,通过将这些命令写入脚本文件,可以实现自动化任务、批量处理操作或复杂逻辑的执行,要正确执行.sh文件,需要理解其执行原理、权限设置、执行方式及常见问题解决方法,以下是详细说明,.sh文件执行的基本原理.sh文件本质上是文本文……

    2025年8月24日
    8400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信