【问题标题】: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】:
pip 和 easy_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