【问题标题】:How can I automate a Perl installation / script如何自动化 Perl 安装/脚本
【发布时间】:2015-02-17 11:01:27
【问题描述】:

我是 Perl 的新手。我们在办公室有一个人们愿意使用的有用脚本。不幸的是,它被认为很难设置,因为必须下载并安装 Strawberry Perl,从命令行手动安装一些 CPAN 模块,然后使用正确的参数运行脚本。这真的没那么糟糕,并且有一个自述文件可以遵循,但是有没有更简单的方法来处理安装?我确定我可以制作一个批处理文件来安装 CPAN 模块,但是如何设置环境变量(如果需要)?我不认为有办法自动安装 Strawberry Perl 或让它“附带”必要的模块?

【问题讨论】:

  • 对于安装部分,您通常会将脚本捆绑为一个发行版,然后像安装任何其他软件一样安装它,这将为您安装依赖项。 shadow.cat/blog/matt-s-trout/mstpan-11

标签: perl


【解决方案1】:

您通常如何在客户端工作站上安装软件?这就是你现在应该使用的方法。

如果你没有类似的东西,我建议使用psexec http://technet.microsoft.com/en-gb/sysinternals/bb897553.aspx

您应该能够使用 MSI 安装程序“静默安装”Strawberry Perl。

http://msdn.microsoft.com/en-us/library/aa372024%28v=vs.85%29.aspx

然后再次使用psexec 进行CPAN 安装。

如果你需要做环境变量,那么你可以在你的 perl 脚本中做,或者你可能不得不远程弄乱 Windows 注册表。

【讨论】:

    【解决方案2】:

    创建一个运行 Perl 安装程序的 BAT 或 CMD 脚本,然后是 CPAN 安装命令。诀窍可能是当 BAT 启动时,Perl 安装区域(C:\Perl\bin 或其他)不会在搜索路径上。这将使运行 CPAN 命令变得困难。因此,BAT 脚本应该包含一个命令,用于手动将 CPAN 的路径添加到脚本环境中。你甚至可以建立一个模块列表,并循环运行它们。我使用 ActiveState,而不是 Strawberry Perl,但我的安装程序看起来像:

    @echo off
    
    Set RegQry=HKLM\Hardware\Description\System\CentralProcessor\0
    REG.exe Query %RegQry% > "%TEMP%\checkOS.txt"
    Find /i "x86" < "%TEMP%\CheckOS.txt"
    If %ERRORLEVEL% == 0 (
      echo This is 32-bit operating system...
      \\Server\Shares\Installers\ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi
    ) ELSE (
      echo This is 64-bit operating system...
      \\Server\Shares\Installers\ActivePerl-5.16.3.1603-MSWin32-x64-296746.msi
    )
    
    REM Even though the above stuff should have installed Perl locally and updated the PATH,
    REM the new PATH won't be available in this BAT script since it was launched before the change.
    REM Add both possible locations for local Perl to the PATH before running the PPM commands below.
    PATH=C:\Perl64\bin;C:\Perl\bin;%PATH%
    
    set MODULE_LIST=(Archive-Extract DBI DBD-ODBC Data-Validate Date-Manip Date-Simple File-Copy-Recursive List-MoreUtils Mail-Sender Mail-Sendmail Params-Validate SOAP-Lite Spreadsheet-WriteExcel Text-CSV Tie-IxHash)
    for %%i in %MODULE_LIST% do cmd/c ppm install %%i
    

    您的最后一行将是ppmcpan 命令安装,但希望您明白这一点!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 2010-12-02
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多