在这一年中,我越来越熟悉在 OS X 上编程,我想在我最初的兴奋中,我安装了一大堆我不会使用并且污染了我的开发环境的东西。
特别是,我发现使用 pip、brew、port 和 easy_install,我已经为各种版本甚至不同的系统(Snow Leopard 和 Mountain Lion)添加了各种包。
所以现在,我想知道是否有什么方法可以让我从头开始?我更愿意保留我的文件和程序,因此无需重新安装操作系统。如果有一种简单的方法可以为这四个中的每一个批量卸载软件包,那将有很大帮助。
谢谢!
在这一年中,我越来越熟悉在 OS X 上编程,我想在我最初的兴奋中,我安装了一大堆我不会使用并且污染了我的开发环境的东西。
特别是,我发现使用 pip、brew、port 和 easy_install,我已经为各种版本甚至不同的系统(Snow Leopard 和 Mountain Lion)添加了各种包。
所以现在,我想知道是否有什么方法可以让我从头开始?我更愿意保留我的文件和程序,因此无需重新安装操作系统。如果有一种简单的方法可以为这四个中的每一个批量卸载软件包,那将有很大帮助。
谢谢!
pip并easy_install安装几乎相同的东西(两者都是安装大多数相同软件包的工具)。
首先获取所有已安装软件包的列表,因为您可能想要保留一些:
$ pip freeze > packages.txt
这应该是一个相当大的文件,其中列出了您在默认系统 python中安装的大多数(如果不是全部)包。
编辑该文件并删除您想要保留的那些包,因此它只包含您想要摆脱的那些(并且没有其他行或注释),然后调整以下脚本:
#!/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,请参阅卸载指南和相关警告。
对于 brew,请参阅这个超级用户问题
巧合的是,这应该告诉您此类问题属于superuser.com,而不属于 stackoverflow - 这是用于编程相关查询的。
不用担心 - 最终会有人将您的线程移到那里。
在 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 创建的
在 MacOS 上,您可以使用:
brew list | xargs brew uninstall