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]

Leave a Reply