2010-10-13 92 views
4

在安装最新的Bundle :: CPAN之后,我意识到某些遗留代码不会在这个最新版本中运行。我希望删除(而不仅仅是取消链接)这个最新版本,并恢复使用旧版本。我怎样才能做到这一点?安装Bundle :: CPAN后,如何恢复到以前的Perl安装程序?

+0

我应该加入这个话题而不是StackExchange? – SkypeMeSM 2010-10-13 04:02:32

+0

我认为这个主题适合于stackoverflow。到旧版本的你想要回滚到什么程度? Just Bundle :: CPAN,它安装的依赖关系,还是实际安装了新版本的perl? – rafl 2010-10-13 04:05:42

+0

是的,我想恢复到旧版本的Perl(5.6),因为安装Bundle :: CPAN安装perl 5.8。 – SkypeMeSM 2010-10-13 04:55:25

回答

4

Perl和CPAN.pm有办法返回到安装更新版本的模块之前的东西。见How can I de-install a Perl module installed via cpan?

但是,下一次,您可以解决此问题。

下面是我建议:

  • 如果你能找出哪些模块是造成问题的原因,在不同的目录中安装这些调整@INC使用的目录。直到你找出你需要的模块版本为止。

  • 当你计算出你需要的分布时,从CPAN或BackPAN抓取这些分布。保持本地发行版本,并且只使用这些发行版来设置您自己的MiniCPAN。由于CPAN作为设计功能仅跟踪任何发行版的最新版本,因此您希望让本地MiniCPAN假装旧版发行版是最新版本。这就是为什么我创建了MyCPAN::App::DPAN。我在Manage multiple MiniCPANs, and version them

  • Stratopan之间,它们的功能与您的类似私有CPAN的存储库的源代码管理类似。如果你得到你不喜欢的东西,就会回滚。

  • 一旦你修好了东西,把你的Perl库放到源代码控制中,这样你总是可以回滚安装。见Manage your Perl modules with git

  • 想出一个安装和测试策略,在您知道一切正常之前不要打扰任何事情。其中一部分是测试主要Perl库目录之外的新安装。当你认为自己满意时,那么你可以安装到这些目录中。

+0

现在还有[pinto](https://metacpan.org/pod/Pinto),它就像Perl模块的版本控制系统。要开始,你仍然需要弄清楚“正确”模块应该是什么。但在此之后,平托的目的是自动化布赖恩所描述的所有工作。还有[Stratopan](https://stratopan.com)在云中执行所有这些操作。披露:我经营stratopan。 – 2014-04-09 09:00:39

-1

最简单的方法是访问metacpan。 搜索您的模块。在你的情况下Bundle::CPAN

然后,您必须选择要通过单击箭头,将模块名称左侧安装模块的相关版本:enter image description here

一旦你点击的版本,从下拉希望下来你就可以下载或只是做例如:

cpanm http://cpan.metacpan.org/authors/id/A/AN/ANDK/Bundle-CPAN-1.861.tar.gz 

希望帮助

+1

这不起作用。较高版本的模块不会被删除。 – 2014-04-09 16:04:38