在 Mac OSX 10.6.8 上从 usr/local/bin 安全删除程序?

ele*_*ong 2 python macos command-line bin scrapy

所以我最近在安装 Scrapy 时遇到了很多麻烦。在学习命令行时,我最终同时使用 pip 和 easy_install 进行安装。不知道造成了什么混乱。

我尝试了命令pip uninstall scrapy,它给了我以下错误:

OSError: [Errno 13] Permission denied: '/Library/Python/2.6/site-packages/Scrapy-0.22.0-py2.6.egg/EGG-INFO/dependency_links.txt'

所以,我按照路径删除了文本文件......以及在该路径中显示“Scrapy”的任何其他内容。/site-packages/目录中有两个版本。

当我再次尝试使用该 pip uninstall scrapy命令时,出现以下错误:

Cannot uninstall requirement scrapy, not installed

感觉太简单了,所以我浏览了我的目录层次结构,我在usr/local/bin目录中发现了以下内容:

-rwxr-xr-x 1 greyelerson staff 173 Jan 21 06:57 scrapy*


到目前为止,我一直抵制将其删除的冲动。但我知道这些文件夹被 Apple 隐藏是有原因的......

1.) 删除它是否安全?

2.) 这会完全删除 Scrapy,还是我还需要删除更多文件?(我没有找到任何关于如何在安装后删除Scrapy 的可靠文档)

aba*_*ert 5

首先,下次您收到 Permission Denied from 时pip uninstall foo,请尝试sudo pip uninstall foo而不是尝试手动执行此操作。

但是现在这样做已经太晚了,您已经删除了pip需要卸载的文件。


还:

到目前为止,我一直抵制将其删除的冲动。但我知道这些文件夹被 Apple 隐藏是有原因的......

是的,它们是隐藏的,因此不使用命令行程序、编写自己的脚本等的人永远不必看到它们。那不是你。您是高级用户,有时您需要查看 Apple 对新手隐藏的内容。您已经查看了 /Library,那么为什么不查看 /usr/local 呢?

要记住的一件事是学会区分 OS X 本身安装的东西和第三方程序安装的东西。基本上,/System/Library 或 /usr 中的任何内容都是 OS X 的一部分,因此您通常不应触摸它,否则可能会破坏操作系统;安装在 /Library 或 /usr/local 中的任何东西都不是 OS X 的一部分,所以你能做的最糟糕的事情就是破坏你安装的一些程序。

另外,请记住,您可以随时备份内容。不要删除文件,而是将其移动到主目录下的某个隔离位置。然后,事实证明你犯了一个错误,只需将其移回。


无论如何,是的,删除/usr/local/bin/scrapy. 当然它会破坏scrapy,但这就是你想要做的重点,对吧?

另一方面,把它留在那里也是安全的,除了如果你不小心scrapy在 shell 提示符下输入,你会得到一个关于scrapy无法找到它的模块的错误,而不是一个关于没有这样的程序的错误现存的。好吧,这可能会妨碍您尝试重新安装scrapy。


无论如何,我的建议是:pip install scrapy再次。当它抱怨不想覆盖的文件时,这些文件必须来自以前的安装,因此请删除它们,然后重试。重复直到成功。

如果在某个时候它抱怨您已经拥有scrapy(鉴于您发布的内容,我认为它不会),请pip install --upgrade scrapy改用。

如果在某些时候它因为想要更新 /System/Library/.../lib/python 中的某些 Apple 预装库而失败,请不要删除它;相反,切换到pip install --no-deps scrapy. (--upgrade如有必要,将其与标志结合使用。)通常,该--no-deps选项不是很有用;它所做的只是让您进行非工作安装。但如果你只是安装卸载,那不是问题。

无论如何,一旦你安装了它,pip uninstall scrapy现在你应该完成了,所有的痕迹都消失了。