gpt4 book ai didi

perl - 使用 homebrew 升级 Perl 版本时如何最好地处理以前安装的模块

转载 作者:行者123 更新时间:2023-12-03 18:52:16 25 4
gpt4 key购买 nike

我经常遇到这种情况:我运行 brew install foobar结果,Perl 版本得到更新。每当发生这种情况时,我已经安装的 Perl 模块不再被发现,因为它们安装在 /usr/local/Cellar/perl/5.32.0/lib/perl5/site_perl/5.32.0/ 中。并且新版本现在正在查看 /usr/local/Cellar/perl/5.32.0/lib/perl5/site_perl/5.32.1_1/ .
我已经/已经安装了大量与以前版本一起安装的模块,我宁愿不重新安装所有模块(至少手动安装)。让以前安装的模块与新的 Perl 版本一起工作的最佳方法是什么?
对于上面这么小的版本更改,我大概可以只复制 5.32.0 中的所有文件。目录 5.32.1_1 dir,但当版本更改更实质性时,最好有一个更通用和/或更健壮的解决方案。

最佳答案

cpan命令可以制作一个“自动捆绑”文件。你会使用 cpan从之前的安装中执行此操作:

$ cpan -a
Creating autobundle in /Users/brian/.cpan/Bundle
Reading '/Users/brian/.cpan/Metadata'
Database was generated on Fri, 19 Mar 2021 05:41:03 GMT

Package namespace installed latest in CPAN file
Algorithm::C3 0.11 0.11 HAARG/Algorithm-C3-0.11.tar.gz
Algorithm::Cron 0.10 0.10 PEVANS/Algorithm-Cron-0.10.tar.gz
Algorithm::Diff 1.1903 1.201 RJBS/Algorithm-Diff-1.201.tar.gz
...
version::regex 0.9924 0.9928 LEONT/version-0.9928.tar.gz
vmsish 1.04 1.04 SHAY/perl-5.32.1.tar.gz
warnings 1.47 1.47 SHAY/perl-5.32.1.tar.gz
warnings::register 1.04 1.04 SHAY/perl-5.32.1.tar.gz

Wrote bundle file
/Users/brian/.cpan/Bundle/Snapshot_2021_03_20_00.pm
在该文件的顶部,有安装说明。使用 cpan从新安装处理这部分:
package Bundle::Snapshot_2021_03_20_00;

$VERSION = '0.01';

1;

__END__

=head1 NAME

Bundle::Snapshot_2021_03_20_00 - Snapshot of installation on otter on Sat Mar 20 00:19:35 2021

=head1 SYNOPSIS

perl -MCPAN -e 'install Bundle::Snapshot_2021_03_20_00'
我几乎从来没有这样做过。当我安装一个新的 perl 并想在其上使用一个新项目时,我会安装该项目。该项目安装它需要的任何东西。我喜欢新的开始,而不是带着我可能不再使用的东西。
另外,请注意 cpan安装您所要求的任何内容的最新版本。如果您需要特定版本, cpanm更容易处理。而且,在这种情况下,您可以考虑使用 cpanfile锁定你想要的东西。

关于perl - 使用 homebrew 升级 Perl 版本时如何最好地处理以前安装的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66716801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com