2010-02-11 2 views
4

기본 서버 소프트웨어의 자동 설치를 실행하는 펄 스크립트를 유지 관리하고 있습니다. 새로운 요구 사항 중 하나는 인라인 :: Java 모듈을 설치하는 것입니다.Linux에서 인라인 :: Java 설치 자동화 (Centos/Redhat)

yum을 사용하여 설치하는 우리의 일반적인 전략은 톰에 인라인 :: 자바가 없으므로 떨어지는 것처럼 보입니다. RPM을 설치할 수 없으므로 RPM으로 설치할 수 없습니다. 유일한 옵션은 CPAN을 통해 설치하거나 tar를 운송하고 SDK 위치를 식별하고 'perl Makefile.PL J2SDK =;을 실행하는 단계를 갖는 것 같습니다. 하다; make install '을 선택하십시오.

본능적으로 나는 자동화 된 설치를 위해 약간 불안정하다고 생각한다. CPAN 설치가 과거에 실패했기 때문에 실제 서버를 사용하고 싶지는 않지만 생각할 수 없다. 더 나은 옵션이 있습니다.

내가 생각했던 또 다른 옵션은 .pm 파일을 사용자 정의 디렉토리에 배치하고 'lib 사용'을 사용하여 위치로 정의하지만 인라인 :: 자바의 작동 방식 때문입니다. 이것이 가능하다고 생각하면 InlineJavaServer 등의 위치가 필요합니다.

누가 더 좋은 해결책이나 위에서 제안한 의견 중 어떤 것이 가장 좋습니까?

답변

2

Inline::JavaInlineJavaServer.jarInline/Java.pm 파일과 동일한 위치에 필요한 다른 파일을 찾습니다. 한 시스템의 설치 디렉토리에서 전체 배포본을 복사하고 다른 시스템 (같은 아키텍처로)에 복사하는 것은 소리가 나는 것처럼 미치지 않습니다. 리눅스, 32 비트 vs 64 비트, perl 5.6 vs perl 5.10 등 모든 시스템이 아닌 다른 시스템을 가지고 있다면 각 시스템마다 별도의 패키지를 만드는 것이 중요합니다.

사용할 기본 Java 설치 지정을 포함하여 Inline::Java에 일부 설치 시간 구성이 있습니다. 그러나이 (및 다른 기본 구성)은 PERL_INLINE_JAVA_J2SDK과 같은 환경 변수로 항상 무시할 수 있습니다 (전체 목록은 Inline::Java perldoc 참조). Inline::Java을 사용자 정의 모듈 (예 : MyCompany::InlineJavaConfig)과 함께 패키지화하여 Inline::Java 모듈이 각 스크립트에로드되기 전에 적절한 환경 변수를 설정할 수 있습니다.

JNI와 기타 기본 지원을 구성할지 여부와 같은 다른 설치 시간 구성이 있습니다. 이러한 기능을 지원하는 파일을 한 시스템에서 다른 시스템으로 복사하는 것이 조금 더 유용 할 수 있습니다. 그러나 나는 그것이 작동하지 않을 것이라는 어떤 이유로 든 손을 생각할 수 없다.

+0

고마워, 나는 누군가 그 환경 변수를 놓쳤다. 이 솔루션은 최소한의 방해로 저에게 효과적이었습니다. – NeilInglis

3

당신은 build your ownperl-Inline-Java 패키지 일 수 있으며 그것을 개인 yum 저장소에 넣거나 심지어 Fedora/EPEL에 제공 할 수 있습니다.

+0

이것은 아마도 더 나은 대답 일 것입니다. 그러나 RPM을 만드는 데 문제가 생겼습니다. 단단한 timescale에 있기 때문에 쉬운 옵션을 선택하고 복사 디렉토리 전략을 사용했습니다. cpan2rpm을 사용하여 RPM을 만들려고했습니다. 내가 겪었던 문제는 Inline :: Java 패키징의 동적 특성과 관련이 있었는데, Inline :: Java-> find_default_j2sdk (빌드시 생성 된 파일을 찾음)에 의존해서 오버라이드 할 수 없었던 것처럼 보였다. . 내 RPM 전문가와 거리가 멀어 질 가능성이 있습니다. 나는 여가 시간이있을 때 다시 시도 할 수도 있습니다. – NeilInglis