我认为一般来说定期更新计算机上的所有软件是个好主意.由于CPAN模块不是由我的包管理器管理的,我想我应该每隔一段时间做一次cpan -u.只有在执行完之后我才会阅读关于此的手册页注释:
-u Upgrade all installed modules. Blindly doing this can really break things,so keep a backup.
>为什么这会打破任何东西?而且我应该如何保持我的CPAN模块更新;我是否需要跟踪所有手动安装的模块(cpan似乎不这样做)并且只定期更新这些模块?我手动安装的模块的依赖关系怎么样?
>为什么cpan -u升级了大约15分钟的东西,即使我没有安装一个CPAN模块?
>我可以恢复cpan -u吗?为此删除〜/ .cpan是否足够?
解决方法
Why should this break anything?
它不应该,但复杂的系统是复杂的,有时事情会破坏(例如,如果模块使用非向后兼容的更改进行更新,或者依赖于具有仅与特定依赖性结合出现的错误的C库).
And how should I keep my CPAN modules up to date otherwise;
只要保持备份以防万一.
Why did cpan -u upgrade stuff for ~15min even though I haven’t installed a single CPAN module?
Perl随large collection of modules一起发布,您的发行版可能已安装其他模块.
Can I revert the cpan -u?
您可以使用文档建议您使用的备份覆盖它.
Is it enough to delete ~/.cpan for this?
不可以.安装程序工具使用该目录来缓存有关可用模块的数据,存储源代码以及保存构建工件.已安装的文件像任何其他库一样写入您的lib.