微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

安装 – 创建脚本以自动安装Perl应用程序及其依赖项

我有一个Perl应用程序需要很多依赖项,我需要在众多服务器上进行部署

我想制作一个自动快速安装Perl应用程序的脚本.

为了更快,我想使用我的包管理器安装我的大多数依赖项,而不是使用CPAN安装它们

有没有办法从perl模块列表中自动确定是否有debian软件包?如果有,请安装软件包,如果没有安装CPAN的Perl模块?

解决方法

嗯,一种方法是看看在系统包管理器周围写一个包装器,即apt-get,如果没有返回包,那么用cpan,cpanm等安装.
sub check_pre_req_package {
  my $package = shift;
  system("dpkg -s $package > /dev/null 2>&1");
  if ( $? != 0 ) {
    system("apt-get -y install $package > /dev/null 2>&1");
      if ( $? != 0 ) {
        system("cpanm $package");
      }
  }
  elsif ($? == 0) {
    print "Package $package is already installed \n";
  }
}

my @pre_req_packages = qw(strace nmap gcc);

foreach(@pre_req_packages) {
  check_pre_req_package($_);
}

当然,通过这种方式,您必须区分大小写(或更改大小写),因为我认为debian在所有小写字母中使用lib(package-name)-perl格式,而cpan将需要不同的格式等,加上这段代码是未经测试的,而且是刚刚抛出的东西.

然后有很好的旧bash脚本,因为我在这个例子中使用了系统命令

我最好的建议是你考虑使用像cfengine或puppet这样的东西和/或其他一些我肯定是在那里进行系统配置管理.然后使用svn或git左右…进行更改以推送到将部署到所有服务器的repo.如果你要管理并对“众多”服务器进行更改,那么cfengine / puppet / etc一旦设置就会让你的生活变得更轻松.只是我的两个.

原文地址:https://www.jb51.cc/Perl/172451.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐