check_logfiles Windows EXE
Posted on September 28th, 2009 by lausser
Erstellung eines Windows-Binaries check_logfiles.exe
Die Installation von check_logfiles auf einem Windows-Rechner setzt das Vorhandensein eines Perl-Interpreters voraus. Dies ist nicht immer erwünscht und führt bei einer großen Anzahl von Nagios-Clients zu erheblichem Administrationsaufwand. Um diesen Aufwand zu minimieren, bietet es sich an, check_logfiles in ein natives Binary zu verwandeln, welches ohne zusätzliche Software lauffähig ist.
Es gibt mehrere Möglichkeiten, aus einem Perl-Script ein Exe-Programm zu machen, die mehr oder weniger funktionieren.
Ich bin nach mehreren erfolglosen Experimenten bei Strawberry Perl und PAR::Packer gelandet.
Installation von Strawberry Perl
Strawberry Perl ist eine 100% OpenSource Implementierung von Perl. Es installiert sich in das Verzeichnis C:\strawberry und bringt gleichzeitig eine mingw32 Umgebung samt gcc mit.
Für alle danach folgenden Schritte ist es wichtig, daß Strawberry-Perl als erstes Perl im Pfad gefunden wird. (Falls es noch andere Installationen von Perl gibt, z.b. ActiveState, VMWare Tools, Cygwin,…)
[sourcecode lang="plain"] C:\>echo %PATH% C:\Programme\VMware\VMware VI Remote CLI\Perl\site\bin;C:\Programme\VMware\VMware VI Remote CLI\Perl\bin;c:\ruby\bin;C:\Perl\site\bin;C:\Perl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\strawberry\c\bin;C:\strawberry\perl\bin;C:\strawberry\c\bin;C:\strawberry\perl\bin;C:\Programme\Gemeinsame Dateien\Adobe\AGL
C:\>set PATH=C:\strawberry\c\bin;C:\strawberry\perl\bin;%PATH% C:\>perl -V Summary of my perl5 (revision 5 version 10 subversion 0) configuration: Platform: osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread … … Built under MSWin32 Compiled at Apr 17 2008 11:36:20 @INC: C:/strawberry/perl/lib C:/strawberry/perl/site/lib . [/sourcecode]
Installation von PAR::Packer Für die Generierung des Binaries braucht man die Perl-Module PAR und PAR::Packer.
[sourcecode lang="plain"] perl -MCPAN -eshell install PAR install PAR::Packer [/sourcecode]
Auspacken und Erstellen des check_logfiles Plugins Wie beschrieben wird das Plugin mit perl winconfig.pl gebaut. Es befindet sich danach im Unterverzeichnis plugins-scripts. Dort findet auch der letzte Schritt statt.
Erzeugen des Binaries PAR::Packer stellt das Programm pp zur Verfügung, mit dem man ein Perl-Script in einer einzelnen Exe-Datei verpacken kann.
[sourcecode lang="plain"] pp -M PerlIO -o check_logfiles.exe check_logfiles
.\check_logfiles -V check_logfiles.exe v2.4.1.7 [/sourcecode]

