如何自动化Perl安装/脚本

时间:2014-12-18 15:39:02

标签: perl

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

2 个答案:

答案 0 :(得分:0)

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

如果您没有此类内容,我建议您使用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注册表。

答案 1 :(得分:0)

创建运行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

你的最后一行是cpan的{​​{1}}命令安装,但希望你明白了!