昨天我想测试一些软件,并在其中说的文档中进行安装,我只需要输入以下内容即可

cpan -i Software

我从未使用过cpan,我只知道它是perl软件包管理器。 (是.. ??)但是,事实证明,我需要大量的依赖项,而且由于我很愚蠢,所以我只安装了所有这些依赖项。 (首先,我必须设置cpan,问了很多问题)长话短说,我只想再次删除所有内容。 我用谷歌搜索了一下,似乎cpan没有卸载例程,尤其是一次安装所有软件包。

我可以只删除一些目录,还是会遇到麻烦?

cpan命令实际上不是像apt-get这样的软件包管理器。它是从CPAN(站点或其镜像之一)下载并安装的工具。完成此任务后,它不会记得很多以前做过的事情,至少还不足以除去先前安装的模块,至少不能可靠,干净或依赖安全。 (更新:查看App::pmuninstall之后,它可以用于处理依赖关系,但是它可以通过连接到外部(阅读:Web)源来进行处理,这些源是分开计算的,这很好,但是我支持前面的声明: CPAN.pm不这样做。)

我曾经担心删除模块,但是现在我意识到大多数Perl模块占用的空间很小,所以我不必担心会安装一些您永远不会使用的额外模块。因此,除非您使用的是装有很小光盘的计算机,否则我会顺其自然。

在Windows上,或者如果您在Linux / Mac上使用非系统Perl,则只需删除Perl并重新安装它即可。如果您在Linux / Mac上使用系统安装的Perl,则不建议这样做,因为这样做可能会破坏操作系统(如果您小心一点,可能会没事,但节省几个Mb并不值得!)。

将来,您可以使用perlbrew轻松地安装Perl的本地版本,如果文档不够(应该如此),则网上遍布教程。这还具有使您可以使用最新和最好的Perl版本的好处,而您的系统可能还没有附带该版本。然后,如果您安装了一大堆垃圾,甚至将其破坏成疯狂的行为,请删除该版本,然后重新安装/安装其他版本。

另一个不错的工具是cpanminus(简称cpanm),它是一种更新的,更用户友好的cpan工具。所有很酷的孩子都在使用它。

谢谢您的解释。我对lib目录进行了更深入的研究,并决定按照您的建议保留所有这些文件。

@xenoterracide是否取决于使用过cpanm来安装?粗略地看一下文档似乎暗示了这一点。无论哪种方式,我都没有看到需要卸载CPAN上的几乎所有模块,至少从数据存储角度而言。知道存在某些东西仍然很高兴

不,cpanm afaik不会做任何事情来写出cpan和cpanp所做的事情。

酷+1!我注意到它确实依赖于网络,但是鉴于CPAN.pm所提供的限制,我很高兴他们发现了一些问题而不是忽略了它们!

我只是看着这个,然后想,卸载模块的一个原因是,当您开发模块时,您在开发版本中删除了其中一个模块,但仍在安装中,因此位于您的lib中。删除它是更好的主意。

@xenoterracide,刚刚看到了这个。我要说的是,您应该使用perlbrew并获得完全干净的Perl进行测试。这将帮助您检查未声明的依赖项等。

您可以使用cpanplus(Perl附带)卸载单个模块,如下所示:

cpanp uninstall SQL::Abstract

您可以这样查看使用cpan脚本安装的所有模块:

perldoc perllocal

将两者放在一起:

for module in $(perldoc -u perllocal | grep -F 'C L$/\1/') ; do

cpanp uninstall"$module"

done

我猜脚本的第二行应该是cpanm --uninstall"$module"

我不确定要删除"全部"。但是要删除单个模块,可以使用App::pmuninstall及其唯一脚本pm-uninstall来卸载模块。然后,您也许可以编写某种脚本来递归删除dep。

如果由于路径中存在不兼容的模块而无法再使用cpan,则可以手动删除所有已安装的模块。例如,我从Fedora 22升级到Fedora 23,Perl版本更改了。以前通过cpanm安装到/usr/local/lib64/perl5中的所有模块均无法正常工作,并阻止了我使用cpanm。

$ cpanm --uninstall Apache::DBI

Attempt to reload Scalar/Util.pm aborted.

Compilation failed in require at /usr/share/perl5/vendor_perl/File/Temp.pm line 18.

...

我可以通过移动该目录来解决此问题:

$ mv /usr/local/lib64/perl5 /root/usr-local-lib64-perl5

该目录的名称在您的系统上可能会有所不同。

小心:如果某个模块在该目录之外安装了文件,例如系统库文件,则这些文件将保留在那里。

我将更改Flimm的答案以使用cpanm,并可以选择在脚本末尾卸载cpanm本身:

#!/usr/bin/env bash

for module in $(perldoc -u perllocal | grep -F 'C L$/\1/' | sort | uniq) ; do

if [["$module" =~"App::cpanminus" ]]; then

continue

fi

echo"Uninstalling $module..."

yes | cpanm --uninstall"$module"

done

cpanm --uninstall App::cpanminus

我认为最好的选择是卸载Perl并重新安装。

此建议的唯一问题是您不应该这样做,因为您正在Linux / Mac上使用系统范围的安装。如果您使用Windows,那么实际上可能是首选。

oracle卸数的perl脚本,卸载cpan安装的所有perl模块相关推荐

  1. linux上mysql卸数_Linux下MySQL卸载和安装图文教程

    Linux下MySQL卸载和安装图文教程 发布时间:2020-09-02 08:43:17 来源:脚本之家 阅读:59 作者:伊宇紫 第一次写博客,做了两年的开发,工作之余给自己找点有意义的事做,分享 ...

  2. linux perl 单例模式,Perl脚本学习经验(三)--Perl中ftp的使用

    使用use Net::FTP; Demo: my $Server = '192.168.1.1'; my $User = 'admin'; my $Password = 'admin'; my $ft ...

  3. oracle卸数什么是ctrl文件,Oracle数据库的安装和卸载之道

    =============================================成功安装数据库================================================ ...

  4. 如何在linux编写perl脚本,关于linux:如何在perl脚本中插入awk命令?

    我想在脚本中添加此awk命令,但始终出现错误. 我已放入"",但仍然出现错误. system("awk -F"\t" '{ for ( i=1; i& ...

  5. oracle shell卸数,Shell 数据库文件卸数成多个txt文件

    /bin/bash ############## 脚本名称:unload.sh 作者: 描述: 参数描述: 修改记录: ############### if  [ $# lt 4 ] then ech ...

  6. linux perl cpan 安装使用

    目录 简介 安装 使用 1.自动安装一个模块 2.手动安装模块 3.查看所有已安装的包 4.查看某个已安装包的位置 5.卸载已安装的包 简介 CPAN(Comprehensive Perl Archi ...

  7. perl linux 独立运行,Perl脚本打包为独立执行程序

    Linux平台打包Perl脚本为独立运行程序 一.安装打包工具 安装注意事项: 1)尽量选择与这个Perl版本兼容的相关Perl模块: 2)由于PAR-Packer-1.013对perl版本需求决定, ...

  8. oracle 11gR2 新增deinstall命令来卸载grid和database

    在oracle 11gR2以前的版本中,卸载CRS和oracle database时需要手工去删除部分东西,从oracle 11gR2版本开始新增deinstall命令可以卸载grid和databas ...

  9. Oracle手边常用70则脚本知识汇总

    Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...

  10. (2)FPGA面试技能提升篇(Perl脚本)

    1.1 FPGA面试技能提升篇2(Perl脚本) 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试技能提升篇2(Perl脚本): 5)结束语. 1.1.2 本 ...

最新文章

  1. 05 Java程序员面试宝典视频课程之Jquery
  2. Android之自定义标题
  3. 2014-06-25nbsp;12:55
  4. 算法基础课-动态规划-区间dp-AcWing 282. 石子合并:区间dp
  5. JVM运行时数据区分析
  6. hudo as3 网络通信框架
  7. Linux+apache+svn
  8. 机器学习之数据预处理——特征编码(标签编码,独热编码)
  9. java学习(58):私有内部类后访问
  10. Bootstrap CSS 编码规范之Less 和 Sass 中的操作符
  11. java 线程 原子性_深入理解Java多线程与并发框架——Java内存模型与原子性、可见性、有序性...
  12. 【EMC】电压暂降、短时中断和电压变化
  13. android图片视频图片封装,详解android 视频图片混合轮播实现
  14. 相亲中的最优停止理论-相亲中的数学
  15. 瑞昱网卡linux通用驱动下载,realtek网卡通用驱动最新版下载
  16. 电信家庭宽带光猫端口映射实现外网访问家庭内网
  17. 百度云网盘不限速下载之Google Chrome浏览器+SwitchyOmega插件
  18. HDU 4607 Park Visit HDU暑期多校1
  19. 强化学习—— 离散与连续动作空间(随机策略梯度与确定策略梯度)
  20. 《算法通识16讲》学习笔记

热门文章

  1. c语言bcd错误数字还原,Windows10开机出现恢复界面且提示错误0xc0000034怎么办
  2. 一座城市靠税收能年入多少钱?
  3. 前端实现图片压缩—压缩图片大小,画质(两种方式)
  4. Original error: Error executing adbExec
  5. OpenSSL源码下载及编译
  6. Openssl 编译
  7. python每天定时发送QQ消息--以驾校约课、给女友发情话为例
  8. 《Loy解说SpringBoot的注解》
  9. 我叫mt4服务器注册 满了,我叫MT4注册上限怎么办 人数上限解决办法
  10. jQuery阶梯手风琴图片布局