如何确保在使用模块::构建的share_dir选项时删除旧的共享内容?



我正在使用 Module::Buildshare_dir选项来安装用户安装我的perl模块时读取的补充内容。

安装新版本时,如何确保删除我的模块以前版本的旧内容?

事先感谢您的帮助。

Yanick Champoux最近一直在处理这个问题。为此,他创建了file :: sharedir :: tarball及其dist :: zilla forpart dist :: zilla :: plugin :: sharchir :: tarball。这个想法是您的整个共享设备都被刻有,因此它只是一个目录。然后,当您的模块升级时,更换了Tarball,并且在您期望的状态下。

如果您要从分发中删除文件

my $mod = 'CGI';
if( eval "require $mod; 1" ){
  die "
YOU HAVE TO UNINSTALL $mod before you can upgrade, use one of
cpanp -u  $mod  --force
pm-uninstall -vf $mod

";
}

或更高

通常,您会知道哪个版本的模块需要完整卸载,因此您可能需要添加版本检查...

fwiw,这将使一个不错的模块:: build/module :: install/partutils :: makemaker加法/扩展/插件接受

之类的东西
requires_uninstall_if_installed  => '<3000' ,
requires_uninstall_if_installed  => { CGI => '<3000', 'CGI::Util' => '<3000' },
requires_uninstall_if_installed  => [ qw' CGI CGI::Util '],
requires_uninstall_if_installed( '<3000' );
requires_uninstall_if_installed( { CGI => '<3000', 'CGI::Util' => '<3000' } );
requires_uninstall_if_installed( [ qw' CGI CGI::Util '] );

我现在已上传Module::Build::CleanInstall,希望解决此类问题。希望它有帮助。非常感谢Yanick和So-So-So-Op-Op-Openid-nonymity的灵感。

相关内容

  • 没有找到相关文章

最新更新