【问题标题】:How to uninstall all packages from homebrew, distribute, macports, pip?如何从 homebrew、distribute、macports、pip 中卸载所有软件包?
【发布时间】:2012-07-28 03:29:24
【问题描述】:

在这一年中,我越来越熟悉在 OS X 上编程,我认为在我最初的兴奋中,我安装了一大堆我不会使用的东西,它们会污染我的开发环境。

特别是,我发现使用 pip、brew、port 和 easy_install,我为各种版本添加了各种软件包,甚至为不同的系统(Snow Leopard 和 Mountain Lion)添加了各种软件包。

所以现在,我想知道是否有什么方法可以让我从头开始?我更愿意保留我的文件和程序,因此无需重新安装操作系统。如果有一种简单的方法可以批量卸载这四个包中的每一个,那将有很大帮助。

谢谢!

【问题讨论】:

    标签: python pip macports homebrew easy-install


    【解决方案1】:

    pipeasy_install 安装几乎相同的东西(两者都是安装大多数相同软件包的工具)。

    首先获取所有已安装软件包的列表,因为您可能想要保留一些:

    $ pip freeze > packages.txt

    这应该是一个相当大的文件,其中列出了您在 默认系统 python 中安装的大多数(如果不是全部)包。

    编辑该文件并删除那些你想保留的包,所以它只包含你想摆脱的那些(并且没有其他行或 cmets),然后调整以下脚本:

    #!/bin/bash
    
    for plugin in $(cat packages.txt); do
        PLUGIN=$(echo "$plugin" | awk -F == '{print }')
        echo "Uninstalling $PLUGIN..."
        expect -c "spawn pip uninstall $PLUGIN
        expect {
            \"Proceed (y/n)?\" {
                send \"y\r\n\"
                expect {
                    exit
                }
            }
        }"    
    done
    

    对于 macport,请参阅 uninstalling guide 和相关警告。

    对于 brew,请参阅this superuser question

    巧合的是,这应该告诉您此类问题属于 superuser.com,而不是属于用于编程相关查询的 stackoverflow。

    别担心 - 最终会有人将您的帖子移到那里。

    【讨论】:

      【解决方案2】:

      在我使用的 Linux 上:

      $ pip freeze > args | pip uninstall -y -r args | rm args
      

      在我使用的 Windows 上:

      $ pip freeze > args | pip uninstall -y -r args | del args
      

      -y 标记自动确认删除,因此它不会提示您是否要删除该包 -r 告诉使用需求文件,在我的示例中文件的名称是args,它是由 pip freeze > args 创建的

      【讨论】:

        【解决方案3】:

        在 MacOS 上您可以使用:

        brew list | xargs brew uninstall
        

        【讨论】:

          猜你喜欢
          • 2013-01-12
          • 2016-03-02
          • 2018-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-28
          • 2021-11-16
          • 2018-07-27
          相关资源
          最近更新 更多