4 Stimmen

Automatisieren der Inline::Java-Installation unter Linux (Centos/Redhat)

Ich verwalte ein Perl-Skript, das eine automatische Installation unserer Basis-Server-Software durchführt. Eine der neuen Anforderungen ist die Installation des Moduls Inline::Java.

Unsere übliche Strategie, mit Yum zu installieren, scheint zu scheitern, da Inline::Java in Yum nicht verfügbar ist. Ich kann keine RPM-Version dafür finden, also kann ich es nicht als RPM installieren. Die einzigen Optionen scheinen die Installation über CPAN oder die Auslieferung der tar-Datei und ein Schritt zu sein, der den Ort des SDK identifiziert und 'perl Makefile.PL J2SDK=; make; make install' ausführt.

Instinktiv denke ich, dass das für eine automatisierte Installation ein wenig wackelig ist, ich hatte in der Vergangenheit Probleme mit fehlgeschlagenen CPAN-Installationen und ich möchte das nicht auf einem Live-Server machen müssen, aber ich kann mir keine bessere Option vorstellen.

Die andere Option, die ich in Betracht gezogen habe, war, einfach die .pm-Datei zu versenden, sie in einem benutzerdefinierten Verzeichnis zu platzieren und 'use lib' zu verwenden, um das als Speicherort zu definieren, aber aufgrund der Art und Weise, wie Inline::Java arbeitet, glaube ich nicht, dass dies möglich ist, da es auch den Speicherort des InlineJavaServers und so weiter benötigt.

Hat jemand eine bessere Lösung oder eine Meinung dazu, welche der oben vorgeschlagenen Lösungen die beste ist?

3voto

Sie könnten Bauen Sie Ihr eigenes perl-Inline-Java Paket zu erstellen und es in ein privates yum-Repository zu stellen oder es sogar zu Fedora/EPEL beizusteuern.

2voto

mob Punkte 113680

Inline::Java wird suchen InlineJavaServer.jar und die anderen Dateien, die er benötigt, am selben Ort wie die Inline/Java.pm Datei. Das Kopieren der gesamten Distribution aus dem Installationsverzeichnis auf einem Rechner und das Kopieren auf einen anderen Rechner (mit der gleichen Architektur) ist nicht so verrückt, wie es klingt. Wenn Sie nur ein paar verschiedene Systeme haben (nicht alle Linux, 32 Bit vs. 64 Bit, Perl 5.6 vs. Perl 5.10, usw.), ist es machbar, für jedes System ein eigenes Paket zu erstellen.

Es gibt einige Konfigurationen zur Installationszeit in Inline::Java einschließlich der Angabe der zu verwendenden Standard-Java-Installation. Diese (und andere Standardkonfigurationen) können jedoch jederzeit mit Umgebungsvariablen wie PERL_INLINE_JAVA_J2SDK (siehe die Inline::Java perldoc für die vollständige Liste). Sie könnten verpacken Inline::Java mit Ihrem eigenen benutzerdefinierten Modul, sagen wir, MyCompany::InlineJavaConfig die die entsprechenden Umgebungsvariablen vor dem Inline::Java Modul wird in jedes Skript geladen.

Es gibt noch einige andere Einstellungen zur Installationszeit, z.B. ob JNI und andere native Unterstützung konfiguriert werden soll. Es könnte etwas komplizierter sein, die Dateien, die diese Funktionen unterstützen, von einem Rechner auf einen anderen zu kopieren. Aber mir fällt aus dem Stegreif kein Grund ein, warum es nicht funktionieren sollte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X