如何彻底卸载Linux源码软件不崩溃?

推荐方法:安装时预记录文件列表(最安全)

若您在安装时已记录文件路径,可精准卸载:

  1. 定位安装记录文件
    通常位于源码目录的install_manifest.txt(常见于CMake项目)或自定义记录文件:

    # 进入源码编译目录
    cd /path/to/source-code
    # 查找记录文件(常见名称)
    ls -l install_manifest.txt  # 或 make_install.log
  2. 按记录卸载文件
    使用xargs逐行删除记录中的文件:

    sudo xargs rm -f < install_manifest.txt
  3. 删除残留目录
    手动移除软件相关目录(通常位于/usr/local):

    sudo rm -rf /usr/local/share/软件名  # 示例路径
    sudo rm -rf /usr/local/etc/软件名

备选方案:无记录文件时的操作(谨慎执行)

步骤1:重新安装并生成文件列表

cd /path/to/source-code
sudo make install DESTDIR=/tmp/software-install  # 重定向安装到临时目录
  • 生成文件列表:
    find /tmp/software-install -type f > install_list.txt

步骤2:根据列表删除真实文件

sudo sed 's/\/tmp\/software-install//' install_list.txt | sudo xargs rm -f

步骤3:清理关键目录

手动检查并删除以下常见位置的残留:

sudo rm -f /usr/local/bin/软件名          # 二进制文件
sudo rm -rf /usr/local/lib/软件名         # 库文件
sudo rm -f /usr/local/share/man/man1/软件名.1  # 手册页
sudo rm -rf /usr/local/share/软件名       # 数据文件

高级工具辅助卸载

  1. 使用checkinstall(安装时需提前规划)
    若最初用checkinstall生成伪包,可像卸载普通包一样操作:

    sudo dpkg -r 软件名    # Debian/Ubuntu
    sudo rpm -e 软件名     # RHEL/CentOS
  2. 通过strace追踪安装过程(复杂但彻底)
    重新安装并记录所有文件操作:

    cd /path/to/source-code
    ./configure
    strace -f -o install.log make install
    grep 'open.*O_CREAT' install.log | awk -F '"' '{print $2}' > file_list.txt
    sudo xargs rm -f < file_list.txt

关键注意事项

  1. 风险预警

    • ❗ 直接执行rm -rf /usr/local/*可能破坏其他软件!
    • 操作前备份重要数据:sudo tar -zcvf /backup/usr_local.tar.gz /usr/local
  2. 预防措施(未来建议)

    • 源码安装时始终记录文件:
      sudo make install DESTDIR=/tmp/record 2>&1 | tee install.log
    • 优先使用checkinstall创建伪包:
      sudo checkinstall -y --install=no --pkgname=软件名
  3. 验证是否卸载成功

    which 软件名        # 检查二进制是否存在
    ldconfig -p | grep 软件名  # 检查库残留

卸载Linux源码包的核心逻辑是:通过安装记录精准删除文件,若无记录,需重新模拟安装生成列表,强烈建议在首次安装时使用install_manifest.txtcheckinstall进行管理,操作前务必备份,避免误删系统关键文件。

引用说明:本文方法参考自Linux标准文档(man pages)及开源社区最佳实践,遵循GNU/Linux文件系统层级标准(FHS),工具建议基于checkinstall官方文档(https://checkinstall.izto.org)和strace手册页。

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

(0)
酷番叔酷番叔
上一篇 3天前
下一篇 3天前

相关推荐

  • 如何查看ISC DHCP服务运行状态?

    在 Linux 系统中,”查看 ISC” 通常指检查 ISC DHCP 服务(dhcpd)或 ISC BIND DNS 服务(named)的运行状态和配置,以下是详细操作指南,涵盖服务状态检查、日志查看和关键文件定位:确认 ISC 服务类型首先明确您需要查看的是哪种 ISC 服务:ISC DHCP 服务:管理……

    2025年7月27日
    1000
  • Linux如何快速打开命令行?

    图形界面下的常用方法快捷键启动(最快捷)通用快捷键:Ctrl + Alt + T(适用于Ubuntu、Debian、Fedora等主流发行版),特殊环境:KDE Plasma:Alt + F2 输入 konsoleXFCE:Super(Windows键)搜索 “Terminal”应用程序菜单查找步骤:点击桌面左……

    2025年6月13日
    2400
  • 如何查看Shell父进程PID?

    在Linux系统中,每个进程(除初始进程init外)都由另一个进程创建,创建者称为父进程,其唯一标识为PPID(Parent Process ID),查看父进程PID是诊断进程关系、排查异常进程或管理进程树的关键操作,以下是几种可靠的方法:使用 ps 命令(最常用)ps(Process Status)是基础工具……

    4天前
    500
  • 如何检测32位Linux系统?

    查看 Linux 系统是否为 32 位若需确认当前系统的架构(32 位或 64 位),可通过以下命令快速验证:终端命令检查uname -m输出 i686、i386 或 x86 表示 32 位系统,输出 x86_64、amd64 或 aarch64 表示 64 位系统,检查内核信息lscpu | grep &qu……

    2025年7月21日
    1000
  • 为什么firewalld无法开放指定端口?

    在Linux系统中,防火墙是保护系统安全的关键组件,它通过控制网络流量阻止未授权访问,禁用防火墙会显著增加系统遭受网络攻击的风险,仅建议在测试环境、内部安全网络或明确知晓后果的情况下操作,以下是不同防火墙工具的禁用方法,操作前请确保具备管理员权限(使用sudo),操作前准备确认当前防火墙工具执行以下命令查看系统……

    2025年7月7日
    1900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信