2014-12-18 4 views
1

Я совершенно новый для Perl. У нас есть полезный скрипт в офисе, который люди хотели бы использовать. К сожалению, это было сложно настроить, потому что нужно загрузить и установить Strawberry Perl, вручную установить несколько модулей CPAN из командной строки, а затем запустить скрипт с правильными аргументами. Это действительно не так уж плохо, и нужно прочитать readme, но есть ли более простой способ справиться с установкой? Я уверен, что могу сделать пакетный файл для установки модулей CPAN, но как насчет настройки переменных среды (если необходимо)? Я не думаю, что есть способ автоматизировать установку Strawberry Perl или иметь «необходимые» модули?Как я могу автоматизировать установку/скрипт Perl

+0

Для части установки вы обычно связываете сценарий как дистрибутив, а затем устанавливаете его, как любой другой бит программного обеспечения, который будет устанавливать для вас зависимости. http://shadow.cat/blog/matt-s-trout/mstpan-11/ – Quentin

ответ

0

Как обычно вы устанавливаете программное обеспечение на клиентских рабочих станциях? Это метод, который вы должны использовать сейчас.

Если у вас нет ничего подобного, я предложил бы использовать psexechttp://technet.microsoft.com/en-gb/sysinternals/bb897553.aspx

Вы должны быть в состоянии «тихой установки» Strawberry Perl с установщиком MSI.

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

Затем используйте psexec снова, чтобы сделать CPAN установку.

Если вам нужно выполнить переменные окружения, вы можете либо сделать это в своем сценарии perl, либо вам может потребоваться удаленно связать с реестром Windows.

0

Создайте сценарий BAT или CMD, который запускает установщик Perl, а затем команды установки CPAN. Трюк, вероятно, заключается в том, что при запуске BAT область установки Perl (C:\Perl\bin или что-то еще) не будет находиться в поисковой системе PATH. Это затруднит выполнение команд CPAN. Таким образом, сценарий BAT должен включать команду, чтобы вручную добавить путь к CPAN в среду сценария. Вы даже можете составить список модулей и запустить их в цикле. Я использую ActiveState, а не клубничный 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 установку ppm, но, надеюсь, вы получите идею!

Смежные вопросы