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. 环境变量:若修改了 PATH 或 LD_LIBRARY_PATH,安装后需更新(如 source ~/.bashrc)。
  3. 依赖项:手动安装的依赖库需单独卸载。
  4. 优先选择包管理器:
    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

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

相关推荐

  • root登录真的安全吗?

    启用root登录的步骤设置root密码(若未设置)大多数Linux发行版默认禁用root密码,通过以下命令设置:sudo passwd root输入当前用户密码(需sudo权限),设置新的root密码(需输入两次确认),通过终端切换root用户方法1:使用su命令su – root输入设置的root密码即可切换……

    2025年7月2日
    31700
  • Linux下如何查看进程的启动命令、参数和启动时间信息?

    在Linux系统中,了解进程的启动信息对于系统管理、故障排查和安全审计都至关重要,通过查看进程的启动命令、启动参数、启动用户、启动时间等详细信息,可以快速定位进程来源、分析异常行为或优化资源配置,本文将详细介绍Linux中查看进程启动信息的多种方法,涵盖基础命令、系统工具及底层文件系统,帮助用户全面掌握进程启动……

    2025年10月6日
    24300
  • 如何掌握 lsblk 命令?

    在Linux系统中,查看未挂载的硬盘分区是管理存储设备的基础操作,常用于新硬盘初始化、分区恢复或挂载配置,以下是几种专业可靠的方法,所有命令均需root权限(通过sudo或root用户执行),操作前请务必确认设备标识符,避免误操作导致数据丢失,特点:直观显示设备树形结构,区分已挂载/未挂载分区,lsblk -f……

    2025年6月19日
    38100
  • Linux如何安装JavaScript运行环境?

    在Linux系统中安装JavaScript并非直接安装语言本身,而是为其搭建运行环境,JavaScript作为一种脚本语言,需要在特定的运行时环境中执行,而目前最主流的JavaScript运行时是Node.js,Linux下“安装JavaScript”通常指安装Node.js及其包管理器npm(Node Pac……

    2025年8月28日
    20000
  • 腾讯云linux如何登陆密码忘了怎么办

    在腾讯云使用Linux服务器过程中,偶尔会遇到忘记登录密码的情况,这可能导致无法远程管理服务器,影响业务正常运行,别担心,腾讯云提供了多种方式帮助用户重置Linux服务器密码,本文将详细介绍不同场景下的密码重置步骤、注意事项及后续安全设置,助你快速恢复服务器访问权限,解决方法概述忘记Linux密码后,主要有两种……

    2025年10月4日
    34100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信