如何从自制程序,分发,macports,pip卸载所有软件包?

时间:2012-07-30 12:47:50

标签: python pip macports homebrew easy-install

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

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

所以现在,我想知道我是否有办法从头开始?我宁愿保留我的文件和程序,所以不要重新安装操作系统。如果有一种简单的方法来批量卸载四个中的每一个,那将极大地帮助。

谢谢!

3 个答案:

答案 0 :(得分:4)

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

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

$ pip freeze > packages.txt

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

编辑该文件并删除您想要保留的软件包,因此它只包含您想要删除的软件包(并且没有其他行或注释),然后调整以下脚本: / p>

#!/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

对于macports,请参阅uninstalling guide及相关警告。

有关brew的信息,请参阅this superuser question

巧合的是,这应该告诉你这些问题属于superuser.com,而不是堆栈溢出 - 这是编程相关的查询。

别担心 - 有人最终会把你的线程移到那里。

答案 1 :(得分:0)

在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 Frozen> args

创建的

答案 2 :(得分:0)

在MacOS上,您可以使用:

brew list | xargs brew uninstall