【问题标题】:Uninstall python built from source?卸载从源代码构建的python?
【发布时间】:2011-04-02 10:38:56
【问题描述】:

我从源代码安装了 python 2.6,后来不知何故也从包管理器中错误地安装了另一个 python 2.6。

我找不到卸载从源代码构建的 python 的方法,这可能/容易吗?

运行 ubuntu 10.04。

【问题讨论】:

    标签: python linux ubuntu python-2.x


    【解决方案1】:

    您可以使用 checkinstall 来删除 Python。这个想法是:

    1. 安装 checkinstall
    2. 使用 checkinstall 制作你的 deb Python 安装
    3. 使用dpkg -r 删除 deb。

    更多详情请见this post

    PS。请注意,Ubuntu 必须始终安装至少一个 Python 安装,否则您的操作系统的主要部分将停止工作。以上,我假设删除从源代码构建的 Python 是安全的,而无需删除包管理器安装的 Python。

    PPS。如果你不小心从你的 Ubuntu 机器上删除了所有 Python 安装,一切都不会丢失。有关如何从这种情况中恢复的说明can be found here

    【讨论】:

    • 你能详细说明一下 dpkg -r 命令吗?我在 Python 源目录中,当我运行该命令时它不起作用。它还说,即使在我使用 deb 文件运行 dpkg -i 之后,deb 文件也没有安装。
    • 对我也不起作用。它说我需要使用dpkg -r python 来卸载,它试图完全卸载python!
    • 在创建安装的 .deb 时要特别小心(回答中的第 2 步) - 检查创建的包的名称。就我而言,我试图删除 python 3.6.3 包。默认情况下,checkinstall 创建名为 python 的 deb。我跑了dpkg -r,但它说那个包没有安装,我尝试了dpkg -idpkg -r的序列。该序列覆盖了/var/lib/dpgk/status 的内容,现在我得到了3.6.3 版本的python,并且很多python 2.* 依赖项被apt-get check 报告破坏。我必须手动更改 dpkg 状态文件的内容才能恢复。
    • 我发现使用 python 3.6.9 可以,但 dpkg 或 apt 不会清理所有站点包 - 因为从 python makefile 调用 ensurepip 的方式。它仍然为您完成 90% 的工作,但我发现我必须手动清除正确的站点包文件夹才能重新安装以重新安装 pip。
    【解决方案2】:

    你有没有看过 进行卸载 我相信这应该对你有用,假设你有 python 2.6 源并且 make 文件有卸载可用(它应该)。

    http://www.linuxquestions.org/questions/linux-newbie-8/source-uninstall-with-make-uninstall-howto-230225/

    【讨论】:

    • 运行 ./configure 然后make uninstall' returns make: *** 没有规则可以使目标“卸载”。停止。'。也许我下载了错误的python版本?编辑:用正确的版本试了一下,结果一样。
    • 听起来make文件没有任何卸载参考。您的 python 安装可能创建了一个 setup.py 文件,在这种情况下您可以执行以下操作: setup.py uninstall 以下是一些可能有用的链接:serverfault.com/questions/50323/…linuxforums.org/forum/redhat-fedora-linux-help/…
    【解决方案3】:

    未来使用sudo checkinstall可能会比较谨慎。

    【讨论】:

    • 为什么?它是什么?多一点信息会有所帮助。
    • 这似乎是@unutbu 答案的最小版本,当时还不存在。当时它可能有点用处,但我现在认为这是多余和晦涩的。
    【解决方案4】:

    我执行了以下操作并使用“make install”重新安装,它成功了。

    whereis python3.6
    rm -rf /usr/local/lib/python3.6
    rm -rf /usr/local/bin/python3.6*
    make install
    

    【讨论】:

      【解决方案5】:

      下面的命令删除了它为我安装的所有东西。

      make -n install
      

      【讨论】:

      • 它列出了make install 将安装的所有东西。您仍然需要删除实际文件。
      • 认为你可以做到make -n [install|altinstall] | xargs rm
      • 不,输出表单make -n 是它将运行的命令;您必须了解并解析输出以提取文件位置。无论如何,像install build/* /usr/local/bin 这样的行并不能准确显示正在复制的文件。如果您没有更改源目录,您可以弄清楚它做了什么,但这绝不是微不足道的。此外,-n 选项实际上可以改变make 认为它需要做的事情。
      【解决方案6】:

      你之前编译 Python 的源目录还有吗?如果是这样,您可以 CD 进入该目录并运行 sudo make uninstall

      如果您还没有它,您可以通过再次执行构建步骤来重新创建它——下载、提取、配置和制作——但以 sudo make uninstall 而不是 sudo make install 结尾当然。

      【讨论】:

        猜你喜欢
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 2017-12-22
        • 2013-06-01
        • 2012-12-11
        • 2015-08-20
        • 2011-09-05
        • 2020-06-19
        相关资源
        最近更新 更多