首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何卸载通过`cpan`安装的Perl模块?

如何卸载通过`cpan`安装的Perl模块?
EN

Stack Overflow用户
提问于 2010-04-13 09:33:51
回答 3查看 109.7K关注 0票数 79

我使用的是在用户空间中运行的Perl (不是通过根目录安装的),并通过命令行cpan安装模块。我想知道是否有一种简单的方法来删除模块,而不必做大量的工作来删除单个文件。

我在互联网上搜索了这个问题,找到了一些答案,但我找到的答案似乎要么讨论了使用Perl包管理器(特定于Microsoft Windows),要么讨论了操作系统特定(BSDpan),建议使用cpanplus (我用过几次不好的经历),或者以指向一个死链接结束,如下所示:http://www.cpan.org/misc/cpan-faq.html#How_delete_Perl_modules

我的问题是,是否有一种干净的方法来删除通过cpan安装的模块。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-13 14:50:49

你不能。在我的CPAN客户端中没有这样做的功能。我们正在讨论如何在本周末的Perl QA研讨会上做类似的事情,但由于Ether提到的所有原因,这通常是困难的。

票数 46
EN

Stack Overflow用户

发布于 2010-04-13 10:09:50

一般来说,CPAN模块没有特定的“卸载”机制。但是您可以尝试在模块解压到的原始目录中使用make uninstall (通常在/root/.cpan~/.cpan下),因为有些软件包在其安装脚本中包含此指令。(但是,由于您已经将模块安装到本地(非根)库目录中,您还可以选择删除整个目录并重新安装您想要保留的所有其他内容。)

很多时候,只需从perllib中删除A/B.pm文件(用于A::B模块)就可以了--这至少会使模块不可用。大多数模块还包含要安装的文件列表(称为“清单”),因此如果您能找到该列表,就会知道哪些文件可以删除。

但是,这些方法都不能解决作为依赖项安装的任何模块。没有好的(自动的)方法来知道是否有其他东西依赖于该模块,所以一旦你确定了,你也必须手动卸载它。

卸载模块的困难是许多Perl开发人员转向使用修订控制系统来跟踪安装的原因之一--例如,请参阅讨论使用git进行包管理的article by brian d foy as a supplement to his upcoming book

票数 30
EN

Stack Overflow用户

发布于 2015-05-21 13:44:10

因为在安装任何模块时,它主要将相应的.pm文件放在各自的目录中。因此,如果您只想出于某些测试目的或临时删除模块,最好的方法是使用perldoc -l <MODULE>找到存储模块的路径,然后简单地将模块从该路径移动到其他位置。这种方法也可以作为更持久的解决方案来尝试,但我没有意识到任何负面后果,因为我这样做主要是为了测试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2626449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档