我为什么不更新所有CPAN模块?

J. *_*Doe 5 perl cpan updates

我认为一般来说定期更新计算机上的所有软件是个好主意.由于CPAN模块不是由我的包管理器管理的,我想我应该cpan -u每隔一段时间做一次.只有在执行完之后我才会阅读关于此的手册页注释:

-u  Upgrade all installed modules. Blindly doing this can really break
   things, so keep a backup.
Run Code Online (Sandbox Code Playgroud)
  1. 为什么这会破坏什么?而且我应该如何保持我的CPAN模块更新; 我是否需要跟踪所有手动安装的模块(cpan似乎不这样做)并且只定期更新这些模块?我手动安装的模块的依赖关系怎么样?
  2. 为什么cpan -u即使我没有安装一个CPAN模块,也能升级~15分钟?
  3. 我可以还原cpan -u吗?是否足以删除~/.cpan此内容?

Que*_*tin 14

为什么这会破坏什么?

它不应该,但复杂的系统是复杂的,有时事情会破坏(例如,如果模块使用非向后兼容的更改进行更新,或者依赖于具有仅与特定依赖性组合出现的错误的C库).

而且我应该如何保持我的CPAN模块更新;

只要保持备份以防万一.

为什么cpan -u升级了大约15分钟的东西,即使我没有安装一个CPAN模块?

Perl随附大量模块,其他模块可能已由您的发行版安装.

我可以恢复cpan -u吗?

您可以使用文档建议您使用的备份覆盖它.

为此删除〜/ .cpan是否足够?

不可以.安装程序工具使用该目录来缓存有关可用模块的数据,存储源代码以及保存构建工件.已安装的文件将写入您的lib任何其他库中.