我认为定期更新计算机上的所有软件通常是个好主意。由于 CPAN 模块不是由我的包管理器管理的,我想我应该偶尔执行一下 cpan -u
。只有在执行此操作后,我才阅读了有关此内容的手册页注释:
-u Upgrade all installed modules. Blindly doing this can really break
things, so keep a backup.
- 为什么这会破坏任何东西?否则我应该如何使我的 CPAN 模块保持最新状态?我是否需要跟踪所有手动安装的模块(
cpan
似乎没有这样做)并且只定期更新这些模块?我手动安装的模块的依赖关系怎么样? - 为什么即使我没有安装单个 CPAN 模块,
cpan -u
也要花费大约 15 分钟来升级内容? - 我可以恢复
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
中。
关于perl - 为什么我不应该更新所有 CPAN 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52648746/