如何在Windows上更新Perl而不丢失模块?
在工作中,我在Windows上使用Perl5.8.0 当我第一次安装Perl时,我去了CPAN,下载了所有的源代码,做了一些更改(在.MAK文件(?)中以支持线程,或者类似的事情),然后做了如何在Windows上更新Perl而不丢失模块?,windows,perl,upgrade,perl-module,Windows,Perl,Upgrade,Perl Module,在工作中,我在Windows上使用Perl5.8.0 当我第一次安装Perl时,我去了CPAN,下载了所有的源代码,做了一些更改(在.MAK文件(?)中以支持线程,或者类似的事情),然后做了nmake/nmake test/nmake install。然后,一点一点地,我从CPAN下载了各个模块,并完成了nmake舞蹈 因此,我想升级到更新的版本,但新版本不能破坏任何现有脚本。值得注意的是,我安装的一堆“使用”模块必须安装在新版本中 更新我的当前版本最可靠(也是最简单)的方法是什么,以确保在更新
nmake
/nmake test
/nmake install
。然后,一点一点地,我从CPAN下载了各个模块,并完成了nmake舞蹈
因此,我想升级到更新的版本,但新版本不能破坏任何现有脚本。值得注意的是,我安装的一堆“使用”模块必须安装在新版本中
更新我的当前版本最可靠(也是最简单)的方法是什么,以确保在更新后我对nmake dance所做的一切仍然存在?当我这样做时,我将新版本安装到一个单独的目录中。在运行两个版本时会有一点混乱,但它确实有助于确保首先一切正常,并提供了一种在必要时快速切换回旧版本的方法。我还将Apache设置为运行两个独立的服务,这样我就可以在一个服务中使用较新的Perl,而不必在旧Perl上使用生产Perl 事后看来,在单独的计算机上安装并在那里进行测试可能更明智。记录您需要进行的每个配置更改 我不确定是否要自己构建它——我总是在Windows中使用预先打包的二进制文件
我不确定我是否完全理解你的要求。您是否有对5.8 makefile所做更改的列表?或者问题是如何获得这样一份清单?您是否也在询问如何找出您从CPAN获得的基础安装之上的哪些软件包?您是否也在询问如何测试您的自定义更改不会再次从CPAN中获得这些包吗? < P>我会认真考虑使用.< /P> < P>您可以在另一个位置安装Perl的第二个版本。您必须将任何非核心模块重新安装到新版本中。一般来说,不同版本的Perl不兼容二进制文件,如果您有任何使用XS组件的程序特定库,这可能是一个问题。纯Perl模块不应受到影响。如果您停留在5.8轨道内,所有包含XS(二进制)扩展的已安装模块将继续工作,因为在相同的5.8系列中保证二进制兼容性。如果迁移到5.10,则必须重新编译包含XS组件的任何模块 您需要做的就是确保新构建在@INC数组(用于查找模块)中列出以前的include目录 听上去,我想你是在Windows上,在这种情况下,当前的@INC路径可以通过
perl -le "print for @INC"
确保将新的Perl版本放在另一个目录中。它将愉快地共存
这将允许您选择使用哪个Perl安装;这只是一个整理路径顺序的问题。一旦启动Perl解释器,它就知道在哪里查找其余模块
草莓Perl可能是目前Windows上最适合自己使用的发行版。正如其他人所指出的,首先在单独的地方安装新的Perl。我安装了几个管道,每个管道与其他管道完全分开 要做到这一点,您必须自己配置和编译源代码。运行
configure
时,您将有机会指定安装程序。我在年的“编译我自己的Perl”中对此给出了详细的说明。在有效的Perl编程中还有一个项目向您展示了如何做到这一点
现在,返回原始发行版并运行cpan-a
创建自动绑定文件。这是一个Pod文档,列出了您安装的所有额外内容,CPAN.pm知道如何使用它重新安装所有内容
要在新的perl中安装东西,请使用该perl的路径启动CPAN.pm并安装您创建的自动绑定文件。pm将从perl的配置中获得正确的安装路径
观察输出以确保一切顺利。此过程不会安装相同版本的模块,而是安装最新版本的模块
至于,除了默认位置之外,还有一个“可移植”版本可以安装。这样,您就可以在可移动媒体上使用新的perl。您可以在任何地方测试它,而不干扰本地安装。但我不认为它已经可以广泛使用了。该工具可能会帮助您管理这一点
祝你好运,:)我想这个问题的答案包括:
perl-c
。例如。这种自动化测试是无价的:你可以设置它运行,出去喝杯咖啡或其他什么,然后回来检查是否一切正常。最初几次你可能会发现一个你忘记的模组