草莓Perl是否仍会清除/site/lib和/site/bin目录中的内容?

23

2011年,有人问到了这个问题如何升级草莓版Perl而不清除\perl\site\lib\和\perl\site\bin\?。当我们升级到新版本时,草莓版似乎会删除用户进行的所有CPAN安装。现在还是这样吗?我找到了Adam Kennedy的一条评论,它似乎与此相关,但我不确定是否真的进行了更改以及其影响是什么。

由于Strawberry Perl被称为“100%开源”,因此我尝试寻找一个开发站点,一个可以获取更多详细信息并查看讨论的地方,但是我找不到任何信息,strawberryperl.com网站在这方面奇怪地缺乏任何信息。即使它的Wikipedia页面(稍微)更具信息性。(编辑:我找到了http://code.google.com/p/strawberry-perl/,这可能是一个很好的链接中心门户,另外http://search.cpan.org/~kmx/Perl-Dist-Strawberry-3.012/script/perldist_strawberry也相当有信息量。)
此外,如果Strawberry仍然这样做,我该如何制作模块的本地备份副本?我不想使用CPAN的自动捆绑并不必要地重新下载所有内容。

更新以备将来参考:从评论中我了解到,由于Strawberry Perl中的site/lib和site/bin中的内容目前是构建依赖的,因此在安装新版本时需要清除它们并重新开始。如果Strawberry引入一个单独的arch目录来存储架构相关的东西,这种必要性可能会消失。


1
Strawberry Perl使用普通的Perl基础设施 - 这里是相应的CPAN模块,它还链接到错误跟踪器和一些存储库。 - amon
@amon 谢谢。我不知怎么忽略了他们支持页面中的直接请求跟踪器链接。虽然我在那里的已解决或活动错误中都没有找到这个问题(可能只是错过了)。 - Sundar R
(架构)特定目录,例如lib/MSWin32-x64-multi-thread,或者更好的是lib/5.18.1/MSWin32-x64-multi-thread,这是一个在lib目录下用于保存构建特定安装的目录。换句话说,我说如果Strawberry就像ActivePerl一样,那么就无法确定已安装的模块是否只能与特定版本(例如,如果它具有XS组件)一起使用,还是可以由任何perl使用(例如,大多数纯Perl模块),因此必须假设它们都是前者。 - ikegami
2
与硬件无关,与Perl版本、构建设置(例如线程化或非线程化)以及可能的构建环境(例如外部库的位置)有关。 - ikegami
1
如果Strawberry引入一个单独的arch目录来存储与架构相关的内容,这种必要性可能会消失。实际上,如果您获得了新版本的perl,则还必须清除依赖于架构的内容,因为主要的perl发布版彼此之间不兼容。因此,即使这些目录仍然存在,您也需要将它们清除,而清除它们将破坏非ABI敏感位置中的内容。因此,最好从头开始。 - Kent Fredric
显示剩余6条评论
1个回答

1
我只是将C:\ strawberry重命名为C:\ strawberry-old,然后安装新版本。很可能您可以将模块从旧安装复制到新安装中(不要忘记查找“auto”目录中的位)。话虽如此,我仍然会从CPAN重新安装所有内容以获取最新版本。如果您有一个批处理文件来自动化这个过程,那就更好了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接